cvAddWeighted 进行图片融合

http://blog.csdn.net/longzaitianya1989/article/details/8103822

cvAddWeighted 进行图片融合

2012-10-23 18:25 4418人阅读 评论(3) 收藏 举报

 分类:

opencv(49) 

版权声明:本文为博主原创文章,未经博主允许不得转载。

cvAddWeighted( ) 是opencv中,将两个图片矩阵进行融合的一个很好的函数,可以得到很多有趣的效果。

其函数原型如下:

void cvAddWeighted( const CvArr* src1, double alpha,const CvArr* src2, double beta,double gamma, CvArr* dst );
src1 
第一个原数组. 
alpha 
第一个数组元素的权值 
src2 
第二个原数组 
beta 
第二个数组元素的权值 
dst 
输出数组 
gamma 
添加的常数项。 
函数 cvAddWeighted 计算两数组的加权值的和:

dst(I)=src1(I)*alpha+src2(I)*beta+gamma
所有的数组必须的相同的类型相同的大小(或ROI大小)

注意:在这里src1,src2,以及dst,都必须是同样的图片类型,如:IPL_DEPTH_8U,在调用cvLoadImage( ) 时,打开方式也必须完全相同,这里1表示以三通道彩色图像方式输入,0表示以灰度图片格式输入,-1表示以原来图片的格式输入

看个例子:

[cpp] view plain copy

  1. #include "stdafx.h"
  2. #include "cv.h"
  3. #include  "highgui.h"
  4. int main(int argc, char* argv[])
  5. {
  6. IplImage *src1,*src2;
  7. if(argc == 9 && (src1=cvLoadImage(argv[1],1))!=0 && (src2=cvLoadImage(argv[2],1))!=0)
  8. {
  9. IplImage *image=cvCreateImage(cvSize(275,313),IPL_DEPTH_8U,3);
  10. cvResize(src2,image);
  11. int x= atoi(argv[3]);
  12. int y= atoi(argv[4]);
  13. int width= atoi(argv[5]);
  14. int height= atoi(argv[6]);
  15. double alpha=(double)atof(argv[7]);
  16. double beta=(double)atof(argv[8]);
  17. cvSetImageROI(src1,cvRect(x,y,width,height));
  18. cvSetImageROI(image,cvRect(10,10,width,height));
  19. cvAddWeighted(src1,alpha,image,beta,0.0,src1);
  20. cvResetImageROI(src1);
  21. cvNamedWindow("Alpha_bend",1);
  22. cvShowImage("Alpha_bend",src1);
  23. cvWaitKey(0);
  24. cvReleaseImage(&src1);
  25. cvReleaseImage(&src2);
  26. cvDestroyWindow("Alpha_bend");
  27. }
  28. return 0;
  29. }

我的命令行参数是:cvAddWeighted.exe lena.jpg cat.jpg 235 221 115 156 0.8 0.2
当然这里还可以自己调整。

这里由于cat.jpg图片比较大,我先对他进行缩放,然后在和lena.jpg进行图片融合,当然融合的坐标点我实在ps里得到的。

时间: 2024-08-11 03:29:16

cvAddWeighted 进行图片融合的相关文章

【Open CV基础】两张图片的Alpha融合

在Open CV的图像操作中,我们可以通过cvAddWeighted函数实现两张图片的融合,函数完整签名为: void cvAddWeighted( const CvArr* src1, double alpha, const CvArr* src2, double beta, double gamma, CvArr* dst ); 参数 意义 src1 第一张图片 alpha 融合时的第一张图片参数 src2 第二种图片 beta 融合时的第二种图片参数 gamma 常数项,往往取决于像素要调

禅说派-全图型PPT之图片处理技巧精粹

图片是提高幻灯片视觉化效果的一部分.图片虽然有天生的优势:高色彩,高质感等,但是放在幻灯片中还需要有巧妙的方法,使幻灯片又自然,画面的优势被更突出.今天开始的未来十天,我们每天分享一则图片在幻灯片中的表现技巧,希望大家要持续阅读,注意积累. 我最近喜欢上一本书<女人人生的12信条>,看过以后有很多感悟,所以将里面的内容归纳整理,就作为这十则图片技巧的具体内容. 第一则:禅说派-加尔雷纳德提倡的简约横幅 〉〉操作步骤 这是一张全图型幻灯片.全图型要求:图片占到80%以上,画面质量一定要高,视觉效

【练习5.9】图像掩码、礼帽、cvCopy、图像融合、cvCvtColor

提纲 题目要求 程序代码 结果图片 要言妙道 题目要求: 读入一副风景图,然后将其转化为灰度图像 a.对图像进行形态学“礼帽”操作,并显示结果 b.将结果图像转化为8位的掩码 c.复制灰度值到礼帽块中,显示结果→我的理解是,将第a问与b问的结果图片融合成一副图 程序代码: 1 // OpenCVExerciseTesting.cpp : 定义控制台应用程序的入口点. 2 // 3 //D:\\Work\\Work_Programming\\Source\\Image\\lena.jpg 4 5

vs2012配置opencv及简单测试

为visual studio2012搭建openCV平台,实现打开图片. 实现步骤: 1.1.配置环境变量 基于win7操作系统的环境配置步骤: 1.1.1 计算机—>属性—>更改设置—>高级—>环境变量—>系统变量 1.1.2 系统变量中选择新建,弹出的新建的系统变量.变量名中填写 opencv,在下面变量值一栏填写F:\opencv\build\x86\vc11\bin点击确定关闭. 变量值为opencv的安装位置及dll文件,实现与vs2012的数据和资源共享. 1.1

web前端性能优化

前言:  在同样的网络环境下,两个同样能满足你的需求的网站,一个“Duang”的一下就加载出来了,一个纠结了半天才出来,你会选择哪个?研究表明:用户最满意的打开网页时间是2-5秒,如果等待超过10秒,99%的用户会关闭这个网页.也许这样讲,各位还不会有太多感触,接下来我列举一组数据:Google网站访问速度每慢400ms就导致用户搜索请 求下降0.59%;Amazon每增加100ms网站延迟将导致收入下降1%;雅虎如果有400ms延迟会导致流量下降5-9%.网站的加载速度严重影响了用户体验,也决

今日提及之动画animation

今天没有说什么内容,只是对HTML5的细节补充,如HTML结构的可以省略到最大的地步 <!DOCTYPE html><meta charset="UTF-8"> <title>animation</title> 这里是放内容的 没有了基本的结构标签了,浏览器会自动帮我们生成. 还有标签的属性的双引号也可以省略: <input type=text> HTML5让我体验到它在最大化的简化标签,使代码量最小化. 还有调试工具的使用,

基于HTML5实现3D监控应用流动效果

流动效果在3D领域有着广泛的应用场景,如上图中医学领域可通过3D的流动直观的观察人体血液的流动,燃气领域可用于监控管道内流动的液体或气体的流向.流速和温度等指标. http://www.hightopo.com/guide/guide/core/lighting/examples/example_flowing.html 如今企业数据中心机房普遍面临着设备散热的问题,采用冷热通道方案可大大提高数据中心的散热能力,充分有效利用机柜和机房的空间,因此在电信的3D机房监控领域,也常需要借助流动的效果,

DIV CSS Sprites精灵 CSS图像拼合 CSS背景贴图定位教程案例

div css sprites精灵-CSS图像拼合 CSS贴图定位网页背景素材图片拼合定位布局技术教程篇与css sprites实例篇 css sprites拼合背景图片素材实现布局效果截图 一.什么是css sprites   -   TOP css sprites直译过来就是CSS精灵.通常被解释为“CSS图像拼合”或“CSS贴图定位”.其实就是通过将多个图片融合到一张图里面,然后通过CSS background背景定位技术技巧布局网页背景.这样做的好处也是显而易见的,因为图片多的话,会增加

css sprites-简单实例让你快速掌握css sprites精髓

这段时间有几次接触到了css sprites的概念,一个就是在用css做滑动门的时候,另外一个就是在用YSlow分析网站性能的时候,于是对css sprites这个概念产生了浓厚的兴趣.在网上查找了很多的资料,但可惜的是大部分都是只言片语,其中很多都是直接翻译国外的资料,也有直接推荐国外的资料网站,无奈英语没有过关,基本上没有理解到什么css sprites,更别谈如何使用了. 最后还是在蓝色理想中的一篇文章受到启发,琢磨了老半天,才算弄清楚里面的内涵,下面将通过本人的理解帮助其他人更加快速的去