我想使用Opencv对齐两个不同大小的图像,实际上函数cvAddWeighted使我们能够合并或混合两个相同大小的图像,这不是我的情况!所以我需要帮助,如果有人知道如何实现这个函数与考虑图像的不同大小谢谢,Y.M
avwztpqn1#
首先,检查Adding Two Images with Different Size。
另一种方法是使用较小图像的宽度/高度在较大图像上设置感兴趣区域(cvSetImageROI()将执行此操作),然后使用cvAddWeighted()执行混合。您可以找到一些源代码来完成此操作here。
cvSetImageROI()
cvAddWeighted()
kx7yvsdv2#
我猜你有两个图像需要对齐,你也有一个图像需要被替换的量。您可以创建一个新的图像,该图像可以包含两个被位移后的图像。这意味着,它将是原始图像的高度+垂直位移,其宽度将是原始图像的宽度 *2-水平位移。然后您可以在此图像上设置ROI并复制图像。
mrphzbgm3#
您编写了一个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的图像数据。
3条答案
按热度按时间avwztpqn1#
首先,检查Adding Two Images with Different Size。
另一种方法是使用较小图像的宽度/高度在较大图像上设置感兴趣区域(
cvSetImageROI()
将执行此操作),然后使用cvAddWeighted()
执行混合。您可以找到一些源代码来完成此操作here。
kx7yvsdv2#
我猜你有两个图像需要对齐,你也有一个图像需要被替换的量。
您可以创建一个新的图像,该图像可以包含两个被位移后的图像。这意味着,它将是原始图像的高度+垂直位移,其宽度将是原始图像的宽度 *2-水平位移。
然后您可以在此图像上设置ROI并复制图像。
mrphzbgm3#
您编写了一个Rect_from_Mat函数,该函数返回Rect(0,0,img. rows,img. cols)。
然后:
请注意,"addWeighted"行将(间接)覆盖img1的图像数据。