Visual c++ 用Opencv混合两幅图像

Visual c++ 用Opencv混合两幅图像,visual-c++,opencv,image-processing,blending,Visual C++,Opencv,Image Processing,Blending,我想使用Opencv对齐两个不同大小的图像, 实际上,cvAddWeighted函数使我们能够组合或混合 相同的尺寸,这不是我的情况! 因此,如果有人知道如何使用 考虑图像的不同大小 谢谢 y、 m首先检查 另一种方法是使用较小图像的宽度/高度设置较大图像上的感兴趣区域(cvSetImageROI()将这样做),然后使用cvAddWeighted()执行混合。您将找到一些源代码来执行此操作。我猜您有两个图像需要对齐。您还将拥有一个图像需要替换的数量 您可以创建一个新图像,该图像在被置换后可以同时

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

谢谢
y、 m

首先检查


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

我猜您有两个图像需要对齐。您还将拥有一个图像需要替换的数量

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


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

您可以编写一个Rect_from_Mat函数,该函数返回Rect(0,0,img.rows,img.cols)

然后:


请注意,“addWeighted”行将(间接)覆盖img1的图像数据。

您是否有兴趣重新缩放一幅图像,使其与另一幅图像保持相同的尺寸?+1我是Aishack的忠实粉丝……我从中学到了很多东西……我可以得到如何在3d中旋转头部吗?我需要知道3个角度。。。
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;
}