Opencvを使用してサイズの異なる2つの画像を整列させたいのですが、cvAddWeighted関数を使用すると、同じサイズの2つの画像を結合またはブレンドできますが、これは私の場合ではありません! 画像のさまざまなサイズを考慮してこの機能を実装する方法を誰かが知っている場合は、助けが必要です
ありがとうございます
Opencvを使用してサイズの異なる2つの画像を整列させたいのですが、cvAddWeighted関数を使用すると、同じサイズの2つの画像を結合またはブレンドできますが、これは私の場合ではありません! 画像のさまざまなサイズを考慮してこの機能を実装する方法を誰かが知っている場合は、助けが必要です
ありがとうございます
まず、「サイズの異なる 2 つの画像を追加する」にチェックを入れます。
それを行う別の方法は、小さい方の幅/高さを使用して大きい方の画像に関心のある領域を設定し (cvSetImageROI() がそれを行います)、cvAddWeighted() でブレンドを実行することです。それを行うためのソースコードがいくつかあります。
Rect(0、0、img.rows、img.cols)を返すRect_from_Mat関数を記述します。
それで:
Rect roi = Rect_from_Mat(img1) & Rect_from_Mat(img2);
Mat img1_roi = img1(roi), img2_roi = img2(roi);
if(results_in_img1)
{
addWeighted(img1_roi, alpha, img2_roi, beta, gamma, img1_roi);
return img1;
}
'addWeighted'行は、(間接的に)img1の画像データを上書きすることに注意してください。