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 plaincopy
  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. python+opencv+图像特效(图像灰度处理、颜色翻转、图片融合,边缘检测,浮雕效果,颜色映射)

    原图 图像灰度处理 #方式1 import cv2 #读取彩色原图 img0=cv2.imread('E:/python_cv/01.jpg',1) #读取灰度图 img1=cv2.imread('E ...

  2. python实现浮雕效果的原理_python+opencv+图像特效(图像灰度处理、颜色翻转、图片融合,边缘检测,浮雕效果,颜色映射)...

    原图 图像灰度处理 #方式1 import cv2 #读取彩色原图 img0=cv2.imread('E:/python_cv/01.jpg',1) #读取灰度图 img1=cv2.imread('E ...

  3. Opencv 图片融合 addWeighted性能测试

    原文:http://blog.csdn.net/u011503970/article/details/18615537 这次介绍OpenCV中一个简单的点运算函数,用来实现图片合成. 对应于例程中的 ...

  4. php的优势和背景,CSS_CSS 多图片融合背景定位的应用于优缺点分析,1. 关键字, 例如: background-positio - phpStudy...

    1. 关键字, 例如: background-position: top right; 优点: 直观, 可用性高, 各浏览器中表现一致. 缺点: 缺少间隔尺寸. 三个垂直的 (top, center, ...

  5. 风格化的图片———融合大师的笔触

    首先声明非原创,代码是github上的开源项目,在此放上链接添加链接描述 原作者给了7个已经训练好的万步模型,我对代码进行了一些修改后可以批量出结果,也就是我可以拿这个做视频了,目前正在做. 代码部分 ...

  6. 图片融合 c++ cuda加速

    1.新建cuda项目 2. 添加环境 在vc++目录-->包含目录添加 D:\Program Files\opencv\opencv-3.4.5\build_cuda\install\inclu ...

  7. PHP图片融合处理,PHP极其强大的图片处理库Grafika详细教程(1):图像基本处理...

    Grafika是一个PHP图像处理库,是基于Imagick和GD,可以用于改变图片大小,剪裁,比较,添加水印等等功能.还有感知哈希,高级图像过滤,绘制贝塞尔曲线等功能,可谓非常强大. 由于功能太多,所 ...

  8. PS 蒙版实现图片融合

    1. 新建文件,打开原图;(图层1) 2. 打开要做为蒙版的图片;拷贝图层加入新文件-新图层中(图层2); 设置----> 亮度=85% 3.在图层2上,在快捷图层菜单下点"添加图层蒙 ...

  9. python实现两个图片的叠加融合

    python通过PIL将两个图片叠加融合 我想到将一个图片去除背景将其放到另一张图片上以此实现融合. 1**. 打开想要融合的图片** file = Image.open('6.png') verse ...

  10. Unity 生成二维码 融合图片

    Unity 生成二维码,并将二维码和已有背景图片融合,保存到本地,,, 1.场景的搭建 2.代码的编写(参考链接) using System.IO; using UnityEngine; using ...

最新文章

  1. jQuery 原理的模拟代码 -4 重要的扩展函数 extend
  2. Java中的Set操作
  3. ROS系统实现 tf坐标系广播与监听
  4. iOS 模糊化效果 ANBlurredImageView的使用
  5. 如何设计ABAP/4 Query报表
  6. springboot md5加密_SpringSecurity入门-SpringBoot集成SpringSecurity
  7. freemarker跳出循环
  8. C++map容器-插入和删除
  9. Keepalived原理详解
  10. 【转】const_cast
  11. 大数据在新型智慧城市的作用
  12. Linux下如何使用gcc编译器,Linux下gcc编译器的使用总结
  13. cuda驱动更新方法之一:
  14. sobel边缘检测java_Sobel边缘检测
  15. 01.【设计模式】工厂模式
  16. linux驱动篇-Led
  17. android弹球游戏小球运动,球球跳一跳跳舞弹球
  18. win10解决 netstart -ano|findstr “8080“出现netstart不适内部或外部命令
  19. [Linux]常见环境开发工具
  20. mtk RF配置步骤三

热门文章

  1. 电影推荐之《白鹿原》 隐私策略(Privacy policy)
  2. java学生管理系统oracle_基于Java的Oracle学生成绩管理系统
  3. 阿里云ubuntu服务器安装使用mysql并配置远程连接记录
  4. 这项技术曾应用于无人驾驶,荣耀10将其移植到手机上这样操作!
  5. J2EE MVC模式框架中,表单数据绑定功能不安全实现在Tomcat下造成的DoS及RCE
  6. Lucene.Net中 FSDirectory存储方式下一个 Document是如何得到的
  7. linxu的文件类型和扩展名
  8. github使用介绍
  9. PostgreSQL在何处处理 sql查询之六十三
  10. NFS客户端在/etc/fstab设置开机挂载后,开机时无法进入系统