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表示以原来图片的格式输入

看个例子:

  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里得到的。

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

  1. OpenCV之cvAddWeighted直接C语言实现版addWeighted,应对上下平滑融合拼接

    关于OpenCV中的cvAddWeighted的介绍可参见<opencv中的cvAddWeighted函数> cvAddWeighted有个问题,它只能实现两张图片的直接融合,往往产生明显 ...

  2. 18款 非常实用 jquery幻灯片图片切换

    1.jquery图片滚动仿QQ商城带左右按钮控制焦点图片切换滚动 jquery图片特效制作仿腾讯QQ商城首页banner焦点图片轮播切换效果,带索引按钮控制和左右按钮控制图片切换. 查看演示>& ...

  3. 转《JavaScript中的图片处理与合成》

    引言: 本系列现在构思成以下4个部分: 基础类型图片处理技术之缩放.裁剪与旋转(传送门): 基础类型图片处理技术之图片合成(传送门): 基础类型图片处理技术之文字合成(传送门): 算法类型图片处理技术 ...

  4. [OpenCV] IplImage and Functions

    In this chapter, APIs will make U crazy. Good luck! Next, Review Linear Algebra.  Ref: http://blog.c ...

  5. vs2012配置opencv及简单测试

    为visual studio2012搭建openCV平台,实现打开图片. 实现步骤: 1.1.配置环境变量 基于win7操作系统的环境配置步骤: 1.1.1 计算机—>属性—>更改设置—& ...

  6. [OpenCV] IplImage and Operation

    IplImage 一.资源 In this chapter, APIs will make U crazy. Good luck! Next, Review Linear Algebra. Ref:  ...

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

    http://www.hightopo.com/guide/guide/core/lighting/examples/example_flowing.html 流动效果在3D领域有着广泛的应用场景,如 ...

  8. 前端试题本(HTML+CSS篇)

    CS1. 下面关于IE.FF下面CSS的解释区别描述正确的有?(不定项)CS2请选出结构正确的选项CS3.下面哪些是HTML5 新增的表单元素?CS4在使用table表现数据时,有时候表现出来的会比自 ...

  9. 今日提及之动画animation

    今天没有说什么内容,只是对HTML5的细节补充,如HTML结构的可以省略到最大的地步 <!DOCTYPE html><meta charset="UTF-8"&g ...

随机推荐

  1. Survey Results for Rebecca Murpheys Learning JavaScript Survey

    时间 2016-01-27 05:40:46  Raymond Camden's Blog 原文  http://www.raymondcamden.com/2016/01/25/survey-res ...

  2. [Linux] 021 RPM 包的安装、升级与卸载

    1. 包全名与包名包全名 包全名:操作的包是没有安装的软件包 使用包全名.而且要注意路径包名 包名:操作已经安装的软件包时,使用 是搜索 /var/lib/rpm/ 中的数 2. 安装 $ rpm - ...

  3. 微信小程序(三)--小程序UI开发

    一.UI介绍 所谓的UI(user Interface)开发指的就是小程序应用界面的开发,在小程序开发框架中会为我们提供一系列的基础组件,例如HTML开发中为我们所提供的一些最基础的标签.需要注意的是 ...

  4. 线上服务器CPU100%排查

    某服务器上部署了若干tomcat实例,即若干垂直切分的Java站点服务,以及若干Java微服务,突然收到运维的CPU异常告警. 问:如何定位是哪个服务进程导致CPU过载,哪个线程导致CPU过载,哪段代 ...

  5. spring-第三篇之ApplicationContext的事件机制

    1.通过ApplicationEvent类和ApplicationListener接口,可以实现ApplicationContext的事件处理. 如果容器中有一个ApplicationListener ...

  6. 厉害了,Google大神每天写多少行代码?

    文章转自开源中国社区,编译自:Quora Quora上有个有趣的问题:Google工程师们每天写多少行代码? Google 的 AdMob 全栈工程师 Raymond Farias 在 Quora 发 ...

  7. kmp(单次匹配)

    http://acm.hdu.edu.cn/showproblem.php?pid=1711 Number Sequence Problem Description Given two sequenc ...

  8. 牛客练习赛27-----C.水图(DFS求最长路径)

    传送门 来源:牛客网题目描述:小w不会离散数学,所以她van的图论游戏是送分的小w有一张n个点n-1条边的无向联通图,每个点编号为1~n,每条边都有一个长度小w现在在点x上她想知道从点x出发经过每个点 ...

  9. C#设计模式:适配器模式(Adapter Pattern)

    一,Adapter适配器模式是将两个不兼容的类组合在一起使用,如下例子 using System; using System.Collections.Generic; using System.Lin ...

  10. 使用wkhtmltopdf工具生成pdf

    背景:将前台页面转换成pdf文档保存到服务器 最开始计划使用canvas2pdf在前端进行生成.但是canva2pdf转换的pdf有严重的失真问题,然后决定使用wkhtmltopdf工具进行生成. 思 ...