opencv学习笔记之两幅图像显式融合
2017-01-22 11:47
453 查看
图像显式融合
即通过下式
将两幅图像相互叠加,alpha控制那幅图像在融合图像中所占的权重。
下面以如下两幅图像通过addWeighted()函数来实现。
图1 图2
#include<opencv2/opencv.hpp>
#include<iostream>
using namespace std;
using namespace cv;
int main()
{
Mat img1,img2,out;
img1=imread("1.jpg",0);
img2=imread("2.jpg",0);
if(!img1.data)
cout<<"error loading img1"<<endl;
if(!img2.data)
cout<<"error loading img2"<<endl;
double alpha=0.5;
double beta,input;
cin>>input;
if(input>=0.0 && input<=1.0)
alpha=input;
beta=(1.0-alpha);
addWeighted(img1,alpha,img2,beta,0.0,out);
namedWindow("out",1);
imshow("out",out);
waitKey(0);
return 0;
}
效果:
融合后图像
函数各个参数如下:
即通过下式
将两幅图像相互叠加,alpha控制那幅图像在融合图像中所占的权重。
下面以如下两幅图像通过addWeighted()函数来实现。
图1 图2
#include<opencv2/opencv.hpp>
#include<iostream>
using namespace std;
using namespace cv;
int main()
{
Mat img1,img2,out;
img1=imread("1.jpg",0);
img2=imread("2.jpg",0);
if(!img1.data)
cout<<"error loading img1"<<endl;
if(!img2.data)
cout<<"error loading img2"<<endl;
double alpha=0.5;
double beta,input;
cin>>input;
if(input>=0.0 && input<=1.0)
alpha=input;
beta=(1.0-alpha);
addWeighted(img1,alpha,img2,beta,0.0,out);
namedWindow("out",1);
imshow("out",out);
waitKey(0);
return 0;
}
效果:
融合后图像
函数各个参数如下:
相关文章推荐
- opencv学习笔记(十五)——图像融合
- Opencv学习笔记(2)模块,图像读取、显示、叠加、融合、颜色分离、亮度、对比度
- opencv学习笔记10 使用OpenCV对两幅图像求和(求混合(blending))¶
- OpenCV学习--实现两幅图像的融合
- 图像绘制功能【OpenCV学习笔记5】
- Opencv学习笔记-显示图像
- 我的OpenCV学习笔记(四):给图像加上水印效果
- C# OpenCV学习笔记五之图像轮廓
- OpenCV学习笔记-图像分割
- opencv学习笔记之Mat,图像的新容器
- 我的OpenCV学习笔记(18):使用Sobel变化和拉普拉斯变换检测图像边沿
- OpenCV学习笔记(7)图像的通道(channels)问题
- OpenCV学习笔记(8)VS2008 MFC下使用OpenCV2.0进行简单图像处理
- 图像分割学习笔记_1(opencv自带meanshift分割例子)
- OpenCV学习笔记(16)双目测距与三维重建的OpenCV实现问题集锦(一)图像获取与单目定标
- OpenCV学习笔记(9)利用MFC的Picture控件显示图像+播放视频和捕获摄像头画面
- openCV学习笔记(5)-- 图像形态学
- 图像的像素点操作【OpenCV学习笔记3】
- OpenCV学习笔记-图像分割
- OpenCV学习笔记(五十一)——imge stitching图像拼接stitching