opencv 叠加两张图_(转载)opencv定义感兴趣区域,两幅大小不同的图像叠加(cv::add())...

有时,我们只需要对一幅图像的一部分进行处理.本节会教会我们如何定义感兴趣的区域.

Getting ready

假设我们想合并两个不同大小的图像.例如,我们将下面的小的图标添加到我们的测试图像上:

但是使用cv::add函数要求两个图像具有相同的大小.在这个例子中,必须定义感兴趣的区域(ROI)使得cv::add可以被使用.它只会应用在和我们logo图像相同大小的ROI区域.ROI的位置将决定logo图像被插入到什么地方.

How to do it ...

第一步首先要定义ROI.一旦定义了,ROI就是作为一个普通的cv::Mat对象被定义.定义ROI的关键是指向原始图像中相同的数据缓冲.插入logo图像代码如下:

// define image ROI

cv::Mat imageROI;

imageROI= image(cv::Rect(385,270,logo.cols,logo.rows));

// add logo to image

cv::addWeighted(imageROI,1.0,logo,0.3,0.,imageROI);

我们会获得如下图像:

因为logo的颜色被添加到图像中去(可能饱和度也变换),视觉效果不总是令人满意的.例如,看上去可能直接把logo图像的像素值覆盖原始图像可能更好.可以使用一个蒙板把logo图像复制ROI区域:

// define ROI

imageROI= image(cv::Rect(385,270,logo.cols,logo.rows));

// load the mask (must be gray-level)

cv::Mat mask= cv::imrea

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值