0

openCV の addweighted 関数を使用して 2 つの画像を追加しました

addWeighted(ROI,1,watermark,0.5,0.0,ROI); 

しかし、その逆を行おうとすると、結果の画像から 2 番目の画像を削除する代わりに、黒のパッチが表示されます。

addWeighted(ROI,1,watermark,-0.5,0.0,ROI);

減算も使用してみましたが、同じ結果が得られます。下の画像は、私が話していることを説明しています。私のアルゴリズムはすべての透かし領域を正しく検出しなかったことに注意してください。ただし、正しく検出された領域については、そこから透かしを差し引くことはできません。

ここに画像の説明を入力

差し引きはどうすればいいのか教えていただけると助かります。

ありがとうございました。

4

1 に答える 1

1

addWeighted のドキュメントによると、(理由を説明できますか?)に半分の重みを与えていwatermarkます。最後の引数は配列ではなく深さの型です...したがって、watermarkROIが同じ深さの場合、または入れたい深さの値...ドキュメントで最終値が飽和値であることに注意すると...つまり、255を超えると255に引き下げられます...だから、減算しても不思議ではありません' t 2 つの正確な値を取得します。

** 編集:**レナの画像はI + 0.5W = Rどこにあり、は透かしであり、結果の画像です。は 255 を超えると切り捨てられるため、 を整数行列に格納します。OpenCV 2.1 を使用しているため、OpenCV API を使用するのではなく、画像をスキャンして加重加算を実行することをお勧めします。そうすれば、取得できる最大値が(255 + 255)である整数行列に保存でき、簡単に保存できます。表示には uchar 行列 (切り捨てられた行列) を使用し、プロセスを逆にするには整数行列を使用します...IWRRRCV_32UC3R

ここに画像の説明を入力

于 2013-01-13T08:14:49.657 に答える