详细流程:

  • (一)、线性混合操作:使用addWeighted()
    • 1、代码
    • 2、说明
    • 3、图片效果
  • (二)、使用roi和mask方式
    • 1、代码
    • 2、说明
    • 3、图片效果

(一)、线性混合操作:使用addWeighted()

1、代码

#include<opencv2/opencv.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>
using namespace cv;int main(int argc, char *argv[]) {Mat image, imagesrc1, imagesrc2;imagesrc1 = cv::imread("../data/test1.jpg");//读取图像1imagesrc2 = cv::imread("../data/test2.jpg");//读取图像2//判断读入是否成功if (!imagesrc1.data | !imagesrc2.data) {std::cout << "打开图片失败,请检查路径!" << std::endl;return 0;}//调整image2的大小与image1的大小一致,融合函数addWeighted()要求输入的两个图形尺寸相同resize(imagesrc2, imagesrc2, Size(imagesrc1.cols, imagesrc1.rows));addWeighted(imagesrc1, 0.3, imagesrc2, 0.7, 0, image);//0.5+0.5=1,0.3+0.7=1imshow("效果图", image);//建立显示窗口namedWindow("效果图");imwrite("../save/fuse.png", image);waitKey();return 0;
}

2、说明

1、先读取两张图;
2、调整image2的大小与image1的大小一致,融合函数addWeighted()要求输入的两个图形尺寸相同;
3、addWeighted(imagesrc1, 0.3, imagesrc2, 0.7, 0, image);这一行是给两张图片分别赋予权重,只要给的两个权重加起来等于1即可;
4、显示效果图;
5、写入处理之后的图片。

3、图片效果

(二)、使用roi和mask方式

1、代码

void  GenerateRendering(Mat &srcImage, Mat &IC, Mat &IP, Mat &rending) {Mat mask1, mask2, tmp;IP.copyTo(mask1);IC.copyTo(mask2);//绿色通道分离出来vector<Mat> channels;Mat  imageGreenChannel;//1Mat  imageRedChannel;//2Mat greenmerge;split(IP, channels);//分离色图像色彩通道,则三通道图像成为三个单通道图像imageGreenChannel = channels.at(1);channels[0] = Mat::zeros(Size(IP.rows, IP.cols), CV_8UC1);channels[2] = Mat::zeros(Size(IP.rows, IP.cols), CV_8UC1);merge(channels, greenmerge);//再抠掉greenmerge.copyTo(srcImage, mask1);srcImage.copyTo(tmp);//红色通道分离出来vector<Mat> channels1;Mat redmerge;split(IC, channels1);//分离色图像色彩通道,则三通道图像成为三个单通道图像imageRedChannel = channels1.at(2);channels1[0] = Mat::zeros(Size(IP.rows, IP.cols), CV_8UC1);channels1[1] = Mat::zeros(Size(IP.rows, IP.cols), CV_8UC1);merge(channels1, redmerge);//再抠掉IC将红色粘上去redmerge.copyTo(tmp, mask2);tmp.copyTo(rending);
}

2、说明

1、先读取3张图;
2、类似于抠图那种将图片加上去
重要的是这个函数: greenmerge.copyTo(srcImage, mask1);

3、图片效果

opencv两张图片叠加显示相关推荐

  1. css将两张图片叠加(简易方法)

    @开启博客之旅,记录生活 css将两张图片叠加 本质上的原理其实是,一个作为背景图片,另一个作为DOM节点元素添加进去.这是我本人的第一篇正式博客,我觉得,现在分享学习到的知识还不晚.刮风了,待会去吃 ...

  2. 学习如何使用html和css样式将两张图片叠加到另一张图片上,实现微信扫一扫二维码效果

    学习如何使用html和css样式将两张图片叠加到另一张图片上,实现微信扫一扫二维码效果 <!DOCTYPE html> <html> <head><meta ...

  3. indesign选中不了图片删除_公众号文章排版,如何让两张图片并排显示?

    最近,有很多小伙伴在交流群里问,怎么才能让两张图片并排显示呢?图片一上传就会占满整个空间,或者直接处于正中位置,如果你也有类似的困惑,不知道该怎么做的话,就认真看下面带来的方法吧,非常使用哦~ 方法一 ...

  4. Unity3D-Shader之两张图片叠加并且通过颜色调控

    最近项目需要做一个图片叠加在一个模型上,而且还需要通过调整颜色改变两个图片的颜色和透明程度. 另外,还需要一个调控值,管理两张图片是否完全显示,Shader如下: Shader "Unlit ...

  5. css两张图片重叠显示

    很多时候我们需要做一些多张图片重叠显示的效果,例如商品列表中 图片上放置已售磬 已下架等标识,很多时候不少初学者不知如何操作,下面就由我来告诉你如何操作 第一步:做一个div容器,把需要重叠显示的图片 ...

  6. android 中关于两张图片叠加方法(记录)

    最近在做一个小的Android项目中遇到一个问题,就是不知道为什么机器输出的分辨率不稳定,总是有几十个像素的误差.导致屏幕适配出现了问题.这次主要记录一下解决思路. 问题就如图 主要是一张背景图 ,在 ...

  7. 嵌入式c c++开发笔记(opencv两图像叠加)

    两图像叠加 可以是两个图片,也可以是视频和图片 先引用头文件 #include <opencv2/opencv.hpp> // Include OpenCV API #include &l ...

  8. 使用Vue将两张图片叠加再保存为一张图片下载

    最终效果 将一张课程图片和一张二维码图片叠加(网上图片随便乱找,勿对号入座!!!) 步骤 先将两张图片使用css进行叠加,然后按照自己需求将图片移动到合理位置 要使用到一个插件将两张图片转为canva ...

  9. opencv两张图片找不同

    牙叔教程 简单易学 使用场景 两张图片找不同, 大家来找茬之类的 效果展示 autojs版本 8.8.7-0 get知识点 灰度 图片做减法 高斯滤波 闭运算( 先膨胀, 再腐蚀 ) 查找轮廓 查找最 ...

最新文章

  1. 完整的Blender三维课程:素描到三维艺术的初学者
  2. pcre安装_Nginx学习_第一期_安装及安装问题解决
  3. gitignore 文件生效办法
  4. golang中的panic
  5. OpenCV条形码识别
  6. oracle强制切换redolog组
  7. P5327-[ZJOI2019]语言【线段树合并,LCA】
  8. python语音库_Python中的Python文本到语音
  9. 中国小伙CVPR 18论文遭质疑:同行难复现,要求评议组撤稿
  10. 单元测试基本路径覆盖法(转)
  11. 基于HEVC的UHD(超高清4K)视频质量评价
  12. 服务器网站出现service,网站出现service unavailable的解决方法
  13. 金字塔原理(Pyramid Principle)
  14. android模拟器连接不到本地服务器
  15. day19-爬虫和前端
  16. java统计英文单词_java单词统计
  17. ps2键盘测试软件,PS2键盘51测试程序2
  18. 【云扩RPA】HowToEmailAutomation
  19. 【构成L1笔记:飞行道具】
  20. Googleearth提取数字高程等高线

热门文章

  1. BLE service, characteristic以及CCCD概念 9
  2. Airbnb暂停中国境内服务 中国民宿市场消化15万房源
  3. 使用 163 邮箱接收 ASP.NET 用户反馈
  4. 自动化工具之UIAutomator
  5. linux 解压rar压缩包
  6. 动感影集制作音乐相册,超简单实用的方法!风靡QQ空间、微信、抖音
  7. 2019.4.8-pandas 读写csv;dorp删除行、列
  8. 线性代数学习笔记——第十二讲——求解矩阵方程
  9. 第8章 面向对象编程(中级部分)
  10. 百万在线:大型游戏服务端开发