发布时间:2023-04-14 18:30
正在学习Opencv,把学习过程中的一些知识点记录下,以供日后翻阅,也给同在学习的朋友参考,有不周全之处,敬请指点。
第一篇学习笔记,mark一下。
addWeighted是线性图像融合函数,可以把两张图片叠加在一起
1、ROI
这里面经常会提到一个名词ROI,即:感兴趣区域,在要处理的图像中提取出的要处理的区域。比如,你要把 图A 融合进 图B 中的一块区域内,那么图B中的这块区域就是你的图像处理所关注的重点,你只要对这块区域进行处理就可以了,可以提高处理效率。
2、函数说明
void addWeighted(InputArray src1, double alpha, InputArray src2, double beta, double gamma, OutputArray dst, int dtype = -1);
src1: 图1,可以理解为背景图片
alpha: 图1的权重,即融合比例
src2: 图2,即要融合的图片
beta: 图2的权重;
gamma:偏移量
dst: 融合后的图片
dtype: 输出阵列的可选深度
其中两个权重值还没有完全理解,取0~1时,基本上是一个透明度,大于1的话会有一些图像的处理在,有待日后进一步研究。gamma:偏移量这个参数也没有完全理解,取值很大时图像会变白。(看来图像处理这一块还有很多东西要学啊)。
3、使用函数
有一个问题需要注意,两个图片的尺寸是要求一样的,如果尺寸不同可以用两个函数解决,一个是使用resize函数调整图片的大小,一个是只处理感兴趣区域,即在图片1上选取一块和图片2一样尺寸的区域,然后只对此块区域进行处理
尺寸一样时:
Mat image1 = imread(\"\");
Mat image2 = imread(\"\");
Mat dstImage;
addWeighted(image1,0.5, image2, 0.5, 0, dstImage);
namedWindow(\"test\", WINDOW_NORMAL);
imshow(\"test\", image1);
尺寸不同时,以ROI为例:
Mat image1 = imread(\"\");
Mat image2 = imread(\"\");
Mat imageROI = image1(Rect(100, 100, image2.cols, image2.rows));
addWeighted(imageROI, 0.5, image2, 0.5, 0, imageROI );
namedWindow(\"test\", WINDOW_NORMAL);
imshow(\"test\", image1);
滚蛋吧小广告!我现在用命令行解压缩;当哥白尼遇上人工智能;一份傲娇的深度学习技术清单;一个视频尽览旷视20项前沿技术 | ShowMeAI资讯日报
《MySQL数据库》之"浅尝辄止"(五)DQL的使用详解和存储引擎简介
基于jsp+servlet图书管理系统之后台用户信息删除操作
C# ABB机器人上位机控制 .net PC SDK开发全流程(通信、控制、日志、二次开发)--Chapter 1
展锐S 上微距模式不识别问题跟进 --- sensor_config的解析
边无际 Shifu IoT 开源开发框架 助力物联网应用开发加速十倍
使用 Apifox 进行接口调试与集成测试的实践与经验总结。
garbor 特征 matlab,理解图像Garbor和HOG特征的提取方法及实例应用
laravel8(一)Target class [XXXXXController] does not exist.错误的解决办法