2

我想使用 Opencv 对齐两个不同大小的图像,事实上,函数 cvAddWeighted 使我们能够组合或混合两个相同大小的图像,这不是我的情况!因此,如果有人知道如何通过考虑图像的不同尺寸来实现此功能,我需要帮助

谢谢你

4

3 回答 3

5

首先,检查添加两个不同大小的图像

另一种方法是使用较小的宽度/高度在较大的图像上设置感兴趣的区域(cvSetImageROI() 将执行此操作),然后使用 cvAddWeighted() 执行混合。您会在此处找到一些执行此操作的源代码。

于 2010-08-11T15:54:30.833 回答
2

我猜你有两个需要对齐的图像。您还将获得一张图像需要置换的数量。

您可以创建一个新图像,该图像可以包含移位后的两个图像。这意味着,它将是原始图像的高度+垂直位移,其宽度将是原始图像的宽度* 2-水平位移。

然后您可以在此图像上设置 ROI 并复制图像。

于 2010-08-16T19:50:38.987 回答
0

你编写了一个返回 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 的图像数据。

于 2012-10-29T19:55:31.450 回答