opencv3学习之addWeight()函数
2017-07-24 18:48
281 查看
//15.addWeighted()实现图像线性混合效果,就像是PPT的动画效果那样,两层图像融合在一起,注意叠加混合和线性混合是不同的,叠加像是个logo直接粘过去,而线性混合是将两幅图融合在一起,朦朦胧胧那种
#include <opencv2/opencv.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespacecv;
bool LinearBlending(){
double alphaValue=0.5;
double betaValue;
Mat srcImage2,srcImage3,dstImage;
srcImage2=imread("/Users/oumoemoe/Downloads/alpha.png");
srcImage3=imread("/Users/oumoemoe/Downloads/girl.png");
Mat imageROI=srcImage3(Rect(0,0,srcImage2.cols,srcImage2.rows));//这个addWeighted函数要求两个图像的尺寸和类型都一样,所以我就设置了这个ROI感兴趣区域,把大一点的那张图截取里一些,这个属于自己的想法加上去的,学会思考了,哈哈哈给自己点个赞
if(!srcImage2.data){printf("srcImage2读取失败\n");returnfalse;}
if(!srcImage3.data){printf("srcImage3读取失败\n");returnfalse;}
betaValue=1.0-alphaValue;//函数的意思我明白,但是这个值的设置还不是很懂
addWeighted(srcImage2, alphaValue, imageROI, betaValue,0.0, dstImage);
namedWindow("原图",1);
imshow("原图",
srcImage2);
namedWindow("处理后",1);
imshow("处理后",
dstImage);
returntrue;
}
int main(){
LinearBlending();
waitKey(0);//经常忘记这条语句,然后程序什么都不输出,马虎
return0;
}
#include <opencv2/opencv.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespacecv;
bool LinearBlending(){
double alphaValue=0.5;
double betaValue;
Mat srcImage2,srcImage3,dstImage;
srcImage2=imread("/Users/oumoemoe/Downloads/alpha.png");
srcImage3=imread("/Users/oumoemoe/Downloads/girl.png");
Mat imageROI=srcImage3(Rect(0,0,srcImage2.cols,srcImage2.rows));//这个addWeighted函数要求两个图像的尺寸和类型都一样,所以我就设置了这个ROI感兴趣区域,把大一点的那张图截取里一些,这个属于自己的想法加上去的,学会思考了,哈哈哈给自己点个赞
if(!srcImage2.data){printf("srcImage2读取失败\n");returnfalse;}
if(!srcImage3.data){printf("srcImage3读取失败\n");returnfalse;}
betaValue=1.0-alphaValue;//函数的意思我明白,但是这个值的设置还不是很懂
addWeighted(srcImage2, alphaValue, imageROI, betaValue,0.0, dstImage);
namedWindow("原图",1);
imshow("原图",
srcImage2);
namedWindow("处理后",1);
imshow("处理后",
dstImage);
returntrue;
}
int main(){
LinearBlending();
waitKey(0);//经常忘记这条语句,然后程序什么都不输出,马虎
return0;
}
相关文章推荐
- 学习opencv第五章 函数(1)
- OpenCV学习——图像装载函数的模拟加载24BPP的BMP文件
- 学习OPENCV书中一些函数的应用
- 学习openCV_2:OpenCV常用的六个函数(I/O)
- opencv2函数学习之threshold:实现图像阈值化
- 【OpenCV学习笔记】【函数学习】六(cvCreateImage()函数)
- opencv addWeighted()函数
- opencv2函数学习之threshold:实现图像阈值化
- opencv学习(四)头文件申明/main函数格式定义/程序(变量)命名规则/printf函数
- opencv学习笔记:特征点匹配函数使用注意
- 【OpenCV学习笔记】2.2基本操作及函数
- opencv 网站tutorials学习翻译 --使用图形处理函数
- 逆向工程核心原理学习笔记(二十):栈帧7:删除函数add()的栈帧&函数返回
- 【VS2010学习笔记】【函数学习】一(MFC+OpenCV2.4.7读取摄像头之WM_TIMER消息处理函数的添加问题)
- 【OpenCV学习笔记】【函数学习】三(cvGetCaptureProperty函数)
- opencv2函数学习之threshold:实现图像阈值化
- 学习OpenCV——BOW特征提取函数(特征点篇)
- opencv2函数学习之blur,GaussianBlur,medianBlur和bilateralFilter:实现图像平滑处理
- opencv学习笔记——Mat属性与成员函数总结
- OpenCV学习(三)之常用OpenCV函数速查