opencv图像线性混合操作
来源:互联网 发布:软件开发认证证书 编辑:程序博客网 时间:2024/05/18 11:25
图像线性混合的数学原理
G(x)=(1-a)F(x)+aQ(x)
注意事项:
1,a的取值范围为0到1之间
2,F(x)和Q(x)为参与混合的两幅图像,G(x)表示输出图像
3,通过对两幅图像的每个像素值做线性加权得到最终的输出图像
4,两幅图像的大小和类型必须完全一致,如果把图像当成一个矩阵
则两个矩阵相加的前提是维度必须一致,否则没有相加的意义。
示例
第一幅参与混合的图像
第二幅参与混合的图像
混合结果
通过混合产生了烟雨朦胧的效果
代码实现
#include <opencv2\core\core.hpp>#include <opencv2\imgcodecs.hpp>#include <opencv2\opencv.hpp>#include <opencv2\highgui\highgui.hpp>#include <iostream>using namespace cv;using namespace std;int main(int argc, char** args){Mat src1, src2, dst;src1 = imread("mogu.jpg");src2 = imread("rain.jpg");if (!src1.data){printf("图像加载错误");return -1;}if (!src2.data){printf("图像加载错误");return -1;}double alpha = 0.5;//混合权重//混合的两幅图像宽高和类型必须完全一致if (src1.rows==src2.rows&&src1.cols==src2.cols&&src1.type()==src2.type()){addWeighted(src1,alpha,src2,(1.0-alpha),0.0,dst);//线性混合//add(src1,src2,dst);//相加//multiply(src1,src2,dst);//相乘imshow("原图-1", src1);imshow("原图-2",src2);imshow("混合后的图",dst);}else{printf("两幅图像的大小或者类型不一致,不能混合!");return -1;}waitKey(0);return 0;}
阅读全文
0 0
- opencv图像线性混合操作
- 【OpenCV】图像线性混合
- C/C++ OpenCV图像的线性混合
- opencv 学习之图像可调节线性混合
- OpenCV学习笔记(03) :图像ROI以及线性混合
- OpenCV入门,线性混合 使用addWeight函数将两幅图像叠加
- OpenCV 初级图像混合
- Opencv初级图像混合
- opencv-初级图像混合
- 初级图像混合OPENCV
- openCV之图像混合
- OpenCV-图像混合
- OpenCV--图像的混合
- OpenCV学习笔记(四):ROI区域图像叠加和图像线性混合
- OpenCV 学习记录4 ROI区域图像叠加及线性图像混合
- opencv 线性图像融合
- Opencv 多通道图像混合
- Opencv多通道图像混合
- 第三方分享(友盟)
- SAP S/4 HANA的SMARTFORMS如何切换到非word编辑器
- 又好用又好装的PDF Expert
- shell 管理SpringBoot 生产环境服务 2
- linux中结束进程的两种方式:正常结束,异常结束
- opencv图像线性混合操作
- 如何在Linux服务器中隐藏PHP版本
- Java中关于精度丢失的问题
- React-Router传参取值页面跳转
- jvm内存调优总结
- Redis主从复制下的工作原理梳理
- Tomcat运行原理
- J2EE 解决MySQL中文乱码问题
- 记一次bug:错误: 找不到或无法加载主类 Test