基于Opencv的两幅图像融合

vvppvyoh  于 2023-02-19  发布在  其他
关注(0)|答案(3)|浏览(156)

我想使用Opencv对齐两个不同大小的图像,实际上函数cvAddWeighted使我们能够合并或混合两个相同大小的图像,这不是我的情况!所以我需要帮助,如果有人知道如何实现这个函数与考虑图像的不同大小
谢谢,Y.M

avwztpqn

avwztpqn1#

首先,检查Adding Two Images with Different Size

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

kx7yvsdv

kx7yvsdv2#

我猜你有两个图像需要对齐,你也有一个图像需要被替换的量。
您可以创建一个新的图像,该图像可以包含两个被位移后的图像。这意味着,它将是原始图像的高度+垂直位移,其宽度将是原始图像的宽度 *2-水平位移。
然后您可以在此图像上设置ROI并复制图像。

mrphzbgm

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的图像数据。

相关问题