我想使用 Opencv 对齐两个不同大小的图像,事实上,函数 cvAddWeighted 使我们能够组合或混合两个相同大小的图像,这不是我的情况!因此,如果有人知道如何通过考虑图像的不同尺寸来实现此功能,我需要帮助
谢谢你
我想使用 Opencv 对齐两个不同大小的图像,事实上,函数 cvAddWeighted 使我们能够组合或混合两个相同大小的图像,这不是我的情况!因此,如果有人知道如何通过考虑图像的不同尺寸来实现此功能,我需要帮助
谢谢你
首先,检查添加两个不同大小的图像。
另一种方法是使用较小的宽度/高度在较大的图像上设置感兴趣的区域(cvSetImageROI() 将执行此操作),然后使用 cvAddWeighted() 执行混合。您会在此处找到一些执行此操作的源代码。
我猜你有两个需要对齐的图像。您还将获得一张图像需要置换的数量。
您可以创建一个新图像,该图像可以包含移位后的两个图像。这意味着,它将是原始图像的高度+垂直位移,其宽度将是原始图像的宽度* 2-水平位移。
然后您可以在此图像上设置 ROI 并复制图像。
你编写了一个返回 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 的图像数据。