前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >OpenCV源码系列|图像叠加

OpenCV源码系列|图像叠加

作者头像
用户9831583
发布2022-06-16 15:57:52
4890
发布2022-06-16 15:57:52
举报
文章被收录于专栏:码出名企路

周末收到小伙伴来信:

于是总结了几种图像叠加的方法参考学习。

1,copyTo

代码语言:javascript
复制
 int main()
{  
  Mat x = imread("1.jpeg");
  Mat y = imread("2.png");
  Mat ROIx = x(Rect(10, 5, y.cols, y.rows));
  y.copyTo(ROIx);
  imshow("x", x);
  waitKey(0);

  mask(x,y);
  
  return 0;
 
}

效果:

2,copyTo(mask)

代码语言:javascript
复制
bool mask(Mat srcImage,Mat logoImage)
{
  
    Mat imageROI = srcImage(Rect(10, 5, logoImage.cols,logoImage.rows));

    Mat mask = logoImage;

    logoImage.copyTo(imageROI,mask);

  
    imshow("copyImg",srcImage);
    waitKey(0);

    return true;
}

效果:

3,addWeighted(大小一致)

代码语言:javascript
复制

bool addWeightedImg()
{
    //alphaValue的大小就是值越小,第一张图片的参与感就越小,反之则越大,当我设置为0.1的时候就非常不明显了
    double alphaValue = 0.5;
    double betaValue;

    Mat srcImage1, srcImage2, dstImage;

    srcImage1 = imread("../addimg/2.png");
    srcImage2 = imread("../addimg/1.png");

    // --进行图像混合加权操作
    betaValue = (1.0 - alphaValue);
    addWeighted( srcImage1, alphaValue, srcImage2, betaValue, 0.0, dstImage);//必须保证两张图片大小一致

   
    imshow("used",dstImage);
    waitKey(0);

    return true;
}

效果:

4,addWeighted(大小可以不一致,图像淡化)

代码语言:javascript
复制
bool addWeightedImg1()
{
    
    Mat srcImage3 = imread("../copyimg/4.jpeg");
    Mat logoImage = imread("../copyimg/1.jpeg");

    Mat imageROI;

    imageROI = srcImage3(Rect(200, 250, logoImage.cols, logoImage.rows));
    
    addWeighted(imageROI, 0.5, logoImage, 0.3, 0., imageROI);//这里会将图像进行淡化操作

    imshow("danhua",srcImage3);
     waitKey(0);

    return true;

}

效果:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码出名企路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档