0

イメージのステッチングに位相相関を使用し、テストデータのほとんどの部分で良好な結果が得られます。私はちょうど左右の画像と上下の画像のペアをステッチしています(シフトのみ) しかし、いくつかの奇妙な動作があります。 まず奇妙な座標ウィンドウをハミングの、私はその後、座標イメージステッチングの位相相関(ハミングウィンドウを使用)

//if L-R 
pt.x= src->width-maxloc.x; 
pt.y= src->height-maxloc.y; 
if(pt.y>(temp->height/2)) 
    pt.y= -(maxloc.y+1); 
//if T-B 
pt.x= src->width-maxloc.x; 
pt.y= src->height-maxloc.y; 
if(pt.x>(temp->width/2)) 
    pt.x= -(maxloc.x+1); 

を変換する必要があり、使用には、私はそれが(でも悪い例のために)良い作品ステッチ左右のためのハミング窓を使用するときようですが、私はハミング窓を使用している場合トップボトムの場合は、(良い場合でも)悪いです。 私はL-RとT-Bの個々のケースを分離する必要はないと思うが、位相相関が私に大域的な最大値を与えると期待しているが、FFTや位相相関の理解に間違いがあるようだ。

//if L-R 
pt.x= src->width-maxloc.x; 
pt.y= src->height-maxloc.y; 
if(pt.y>(temp->height/2)) 
    pt.y= -(maxloc.y+1); 
//if T-B 
pt.x= src->width-maxloc.x; // (repeated) 
pt.y= src->height-maxloc.y; // <- overwrites previous value 
if(pt.x>(temp->width/2)) 
    pt.x= -(maxloc.x+1); 

あなたが登録しようとしている画像を表示することができますしてください:ここ は、私がhttp://codepaste.ru/9415/

答えて

0

あなたのコードは明白な間違いを持っ​​て使用するコードです。

+0

いいえ間違いではありませんが、私はちょうど2つのケースのためのコードをポストします(実際には別の場所にあります)。私は画像(画像のペア)の関係を知っていますが、オーバーラップするので、画像の半分だけの位相相関を計算します(計算の複雑さを減らすため) しかし、なぜ座標を変換する必要があるのか​​分かりません。 私はそのようなものを実現したいhttp://www.xuvtools.org/screenshots 私は後でいくつかの例を掲載します。 – mrgloom

+0

今、私はFFTWを使ったフェーズ相関コードに間違いがあると思っています。ここではコードhttp://codepaste.ru/9423/です。phase_correlation2D(img、img、poc)のようにテストしてくれます。 (0,0)。 – mrgloom

+0

たとえば2画像http://rghost.ru/36647638 http://rghost.ru/36647639 – mrgloom