addWeighted()

功能说明:addWeighted()函数是将两张相同大小,相同类型的图片融合的函数。
void cvAddWeighted( const CvArr* src1, double alpha,const CvArr* src2, double beta,double gamma, CvArr* dst );
参数1:src1,第一个原数组.
参数2:alpha,第一个数组元素权重
参数3:src2第二个原数组
参数4:beta,第二个数组元素权重
参数5:gamma,图1与图2作和后添加的数值。不要太大,不然图片一片白。总和等于255以上就是纯白色了。
参数6:dst,输出图片

#include <opencv2/opencv.hpp>
#include <iostream>
//问题:
//如何同比例改变图像大小
//如何设置图片显示的坐标using namespace std;
using namespace cv;int main() {Mat src;src = imread("C:/Users/fh/Pictures/001.png");if (src.empty()) {printf("could not load image...");return -1;}//namedWindow("img", WINDOW_AUTOSIZE);//imshow("img", src);Mat gray_src;//gray_src = Mat(src.size(), src.type());//gray_src = Scalar(127, 0, 255);//gray_src = src.clone();           // 拷贝图片//src.copyTo(gray_src);             // 拷贝图片cvtColor(src, gray_src, COLOR_BGR2GRAY);printf("原图像通道:%d\n", src.channels());printf("灰度图像通道:%d\n", gray_src.channels());//查看单行像素const uchar* firstRow = src.ptr<uchar>(0);const uchar* firstRowG = gray_src.ptr<uchar>(0);printf("原图单行像素:%d\n", *firstRow);printf("灰度单行像素:%d\n", *firstRowG);//namedWindow("src", WINDOW_AUTOSIZE);//imshow("gray_src", gray_src);//复制大小//Mat copy_mat;//copy_mat.create(src.size(), src.type());//copy_mat = Scalar(127,0,127);//imshow("smallDst", copy_mat);//构造一个小的方框//Mat smallDst(100,100,CV_8UC3,Scalar(0,0,255));//namedWindow("smallDst", WINDOW_AUTOSIZE);//imshow("smallDst", smallDst);//读取像素值(灰度图,RGB图)取反Mat temp_gray;temp_gray = gray_src.clone();int height = temp_gray.rows;int width = temp_gray.cols;for (int row = 0; row < height; row++) {for (int col = 0; col < width; col++) {int gray = temp_gray.at<uchar>(row, col);temp_gray.at<uchar>(row, col) = 255 - gray;}}//imshow("temp_gray", temp_gray);Mat src_temp;src_temp = src.clone();for (int row = 0; row < height; row++) {for (int col = 0; col < width; col++) {int src_R = src_temp.at<Vec3b>(row, col)[0];int src_G = src_temp.at<Vec3b>(row, col)[1];int src_B = src_temp.at<Vec3b>(row, col)[2];//src_temp.at<Vec3b>(row, col)[0] = 255 - src_R;//src_temp.at<Vec3b>(row, col)[1] = 255 - src_G;//src_temp.at<Vec3b>(row, col)[2] = 255 - src_B;//src_temp.at<Vec3b>(row, col) = min(src_R, min(src_G, src_B));src_temp.at<Vec3b>(row, col) = max(src_R, max(src_G, src_B));}}//imshow("src_temp", src_temp);//bitwise_not(src, src_temp);//imshow("src_temp", src_temp);//图片融合Mat src2,src4,src3;src2 = imread("C:/Users/fh/Pictures/002.jpg");if (src2.empty()) {printf("could not load image...");return -1;}double alpha = 0.5;if (src.size() == src2.size() && src.type() == src2.type()) {addWeighted(src, alpha, src2, 1.0, 1, src3);addWeighted(src, 0.5, src2, 0.5, 3, src4);imshow("src", src);imshow("src4", src4);imshow("src3", src3);}else {cout << "don't have this photo";}waitKey(0);return 0;
}

addWeighted()相关推荐

  1. python 替换字符串的方法replace()、正则re.sub()

    一.replace()函数 1用字符串本身的replace方法: a = 'hello word' b = a.replace('word','python') print b 1 2 3 二.re. ...

  2. Scrapy 学习笔记(-)

    Scrapy Scrapy 是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中.其最初是为了页面抓取 (更确切来说, 网络抓取 )所 ...

  3. 67)vector的begin() end() 和 front() back()的区别 rbegin() rend()

    1) ·············· 2)`````````v1.begin() 和v1.end()  是作为迭代器v1的 第一个位置  和 最后一个元素的下一个位置. `````````````v1. ...

  4. 转:【CSS/JS学习】如何实现单行/多行文本溢出的省略(...)--老司机绕过坑道的正确姿势...

    本文来源:http://www.cnblogs.com/penghuwan/p/6682303.html 引言: 写前端UI的朋友们也许都遇到过这样的问题:我们需要实现这样一个需求,在一个父级元素中隐 ...

  5. Python中的对象,类,super()函数

    对象:(1)外观的特征 (2)正在做的事情 比如:那个穿蓝色衣服的正在打球的帅哥  类:属性(静态的变量)+方法(函数)是对对象的近似 类名约定是以大写字母开始的 类的出现: 是为了使得对象可以进行大 ...

  6. Python中的super()函数

    多路继承的问题 描述: 解决这样的问题Python中可以使用super() super()函数有点: (1)在父类中可以直接的调用未绑定的方法 (2)在确保所有的父类的构造方法都使用了super()函 ...

  7. 函数assert()详解

    函数assert()详解: 断言assert是一个宏,该宏在<assert>中,,当使用assert时候,给他个参数,即一个判读为真的表达式.预处理器产生测试该断言的代码,如果断言不为真, ...

  8. 若显示器接口电路中的刷新存储器容量为1MB,当采用800*600的分辨率模式时,每个像素最多可以有多少()种颜色

    若显示器接口电路中的刷新存储器容量为1MB,当采用800*600的分辨率模式时,每个像素最多可以有多少()种颜色. 显示内存 >= 分辨率与彩色位数/8的乘积 1MB=800*600*T: T= ...

  9. 下面算法中,不属于公开密钥加密算法的是()。D

    下面算法中,不属于公开密钥加密算法的是().D A.ECC B.DSA C.RSA D.DES 常用的公钥加密算法有RSA.DSA.ElGamal和ECC. 常用的对称加密算法有DES.3DES.ID ...

最新文章

  1. 深度学习中的优化算法之MBGD
  2. Terraform入门 - 3. 变更基础设施
  3. html滚动条样式自定义,CSS3自定义滚动条样式
  4. umask命令:设置文件的默认权限掩码
  5. 浏览器兼容性问题汇总
  6. Linux编程获取本机IP地址
  7. oa处理会签流程图_简易OA漫谈之工作流设计(四,怎么支持会签)
  8. php 修改服务器ip,php 修改服务器ip
  9. [转]利用处理程序错误攻击(下)
  10. linux ffmpeg插件,Linux FFmpeg(含x264、lame插件)安装记录
  11. 子进程 已安装 pre-removal 脚本 返回了错误号 1或2 与 子进程 已安装 post-installation 脚本 返回了错误号 1或2
  12. 微信mysql抽奖系统源码_微信互动游戏营销活动抽奖系统 v1.0
  13. python的power,Python numpy.power()函数使用说明
  14. layui switch使用详解
  15. 进入bios看了,vt 已经开了,为什么打开模拟器还显示未开启?
  16. 内存频率有哪些?怎么看内存频率
  17. SLIC超像素分割的算法介绍和源码分析
  18. 开关电源(1)之BUCK降压变换器工作原理及Multisim实例仿真
  19. 扇贝python课程怎么样知乎_扇贝真好用
  20. 新买的电脑,刚刚用几天,发现C盘占用一大半!!!(已解决)

热门文章

  1. C++中的字符串输入输出函数详解
  2. win32——消息循环 原理 函数 GetMessage PeekMessage TranslateMessage SendMessage PostMessage...
  3. 3-7 DNA序列(DNA Consensus String, ACM/ICPC Seoul 2006, UVa1368)
  4. C#性能优化篇 - 基于索引器封装EPList
  5. Linux 用户线程数与文件句柄树调整(nproc与nofile的问题)
  6. 让fedora满足你的日常办公和影音
  7. photoshop cs3 字体 即时预览
  8. C#: Writing a CookieContainer to Disk and Loading Back In For Use
  9. 如何启用×××服务器端的IPsec功能
  10. EChart绘制风速风向曲线分析图