2

2 つの画像をつなぎ合わせましたが、最終的な画像には継ぎ目が見えます。アルファブレンディングを使用してその継ぎ目を削除しようとしています。関数を使用してアルファブレンディングが適用されることは知っていcvAddweight()ますが、この関数のパラメーターはalphabetagamma、 desitination の 2 つの画像です。gamma=0alpha=0.6、を服用していbeta=0.4ます。私のコードの最後の部分として、私の2つの入力ソース画像と宛先画像はこれです->

IplImage* WarpImg = cvCreateImage
(cvSize(T1Img->width*2, T1Img->height*2), T1Img->depth, T1Img- >nChannels); 
cvWarpPerspective(T1Img, WarpImg, &mxH);
cvSetImageROI(WarpImg, cvRect(0, 0, T2Img->width, T2Img->height));
cvCopy(T2Img, WarpImg);
cvResetImageROI(WarpImg);
cvNamedWindow("WarpImg Img",1);
cvShowImage("WarpImg Img", WarpImg);
cvSaveImage("save.jpg",WarpImg);

私の最終的な画像はここに画像の説明を入力

4

2 に答える 2

0

認めざるを得ませんが、アルファブレンディングがあなたの答えだとは思いません。照明/露出の違いにより見えます。アルファ ブレンディングは、2 つの画像の色を加重平均することにより、基本的に 1 つの画像を別の画像を通して見えるようにする方法です。あなたの右と左の画像は黒で裏打ちされています。単純にアルファ ブレンドを行うと、基本的に画像に黒の背景で重み付けすることになります。結果として得られる効果は、両方の画像が暗くなるだけです。

他に考えられる 2 つの方法は、両方の画像の平均的な色を外観で見て、一方を上下に調整して明るさの差の 50% を調整し、もう一方を反対の 50% だけ調整することです (一方は上に、もう一方は上に、もう 1 つは上に、もう一方は上に)。ダウンし、50% を使用すると、全体的な明るさのジャンプがいずれかの差の 50% のみになるようになります)。

もう 1 つは、一方の画像のヒストグラムをもう一方の画像に合わせて拡大または縮小し、それらを整列させ、新しいヒストグラムを介して色 (この場合はグレースケール) を再割り当てしようとする、より複雑な画像ヒストグラム手法を実行する場合があります。

于 2012-06-04T17:54:00.253 に答える
0

ピラミッド/マルチバンド ブレンディングは、シナリオに対して十分に機能するはずです。enblend を試す: http://enblend.sourceforge.net

于 2013-01-08T23:50:49.927 に答える