我想使用Opencv对齐两个不同大小的图像, 实际上,cvAddWeighted函数使我们能够组合或混合两个图像 相同的尺寸,这不是我的情况! 如果有人知道如何实现这个功能,我需要一个帮助 考虑图像的不同尺寸
感谢 y.m
答案 0 :(得分:5)
首先,请检查Adding Two Images with Different Size。
另一种方法是使用较小的宽度/高度设置感兴趣的区域(cvSetImageROI()将这样做),然后使用cvAddWeighted()执行混合。您可以找到一些源代码和here。
答案 1 :(得分:2)
我猜你有两张需要对齐的图片。您还需要替换一个图像的数量。
您可以创建一个新图像,该图像可以包含移位后的图像。这意味着,它将是原始图像的高度+垂直位移,其宽度将是原始* 2水平位移的宽度。
然后,您可以在此图像上设置ROI并复制图像。
答案 2 :(得分: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的图像数据。