2010-08-11 82 views
2

我想使用Opencv對齊不同尺寸的兩幅圖像, 事實上,函數cvAddWeighted使我們能夠合併或混合兩幅相同大小的圖像,這不是我的情況! 所以我需要一個幫助,如果有人知道如何實現此功能與 考慮圖像通過Opencv混合兩幅圖像

感謝 y.m

+0

您是否有興趣重新調整一個圖像以保持與另一個圖像相同的尺寸? – karlphillip 2010-08-11 15:38:43

回答

5

首先,檢查Adding Two Images with Different Size不同的尺寸。

另一種方法是使用較小的寬度/高度(cvSetImageROI()將會這樣做)設置較大圖像的感興趣區域,然後使用cvAddWeighted()執行混合。你會發現一些源代碼來做到這一點,here

2

我猜你有兩個圖像需要對齊。您還將獲得一張圖片需要被移動的數量。

您可以創建一個新的圖像,在移動後可以包含這兩個圖像。這意味着,它將是原始圖像的高度+垂直位移,其寬度將是原始水平位移的寬度。

然後,您可以在此圖像上設置ROI並複製圖像。

+1

+1我是Aishack的忠實粉絲....我從中學到了很多東西......我能得到如何在3D中獲得頭部旋轉的信息,我需要知道3角... – Wazzzy 2011-12-07 09:15:27

0

你寫了一個Rect_from_Mat函數,它返回Rect(0,0,img.rows,img.cols)。

然後:

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的圖像數據。