qt+opencv对两幅图片进行融合
本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明.
源代码:
- #include "widget.h"
- #include "ui_widget.h"
- #include "public.h"
- Widget::Widget(QWidget *parent) :
- QWidget(parent),
- ui(new Ui::Widget)
- {
- ui->setupUi(this);
- cvNamedWindow("jdh1",1);
- cvNamedWindow("jdh2",1);
- cvNamedWindow("jdh3",1);
- src1 = cvLoadImage("test.jpg");
- src2 = cvLoadImage("lena.jpg");
- dst = cvLoadImage("test.jpg");
- QString str;
- str.setNum(src1->width);
- ui->lineEdit->setText(str);
- str.setNum(src1->height);
- ui->lineEdit_2->setText(str);
- str.setNum(src2->width);
- ui->lineEdit_3->setText(str);
- str.setNum(src2->height);
- ui->lineEdit_4->setText(str);
- }
- Widget::~Widget()
- {
- delete ui;
- cvReleaseImage(&src1);
- cvReleaseImage(&src2);
- cvReleaseImage(&dst);
- cvDestroyAllWindows();
- }
- void Widget::on_pushButton_clicked()
- {
- bool ok;
- double alpha,beta,temp;
- int x,y,width,height;
- temp = ui->lineEdit_7->text().toDouble(&ok);
- if (ok)
- {
- alpha = temp;
- }
- else
- {
- alpha = 0.4;
- }
- cout << alpha << endl;
- temp = ui->lineEdit_8->text().toDouble(&ok);
- if (ok)
- {
- beta = temp;
- }
- else
- {
- beta = 0.6;
- }
- cout << beta << endl;
- x= ui->lineEdit_5->text().toInt(&ok,10);
- cout << x << endl;
- y = ui->lineEdit_6->text().toInt(&ok,10);
- cout << y << endl;
- width = ui->lineEdit_9->text().toInt(&ok,10);
- cout << width << endl;
- height = ui->lineEdit_10->text().toInt(&ok,10);
- cout << height << endl;
- cvSetImageROI(src1,cvRect(x,y,width,height));
- cvSetImageROI(src2,cvRect(x,y,width,height));
- cvSetImageROI(dst,cvRect(x,y,width,height));
- cvAddWeighted(src1,alpha,src2,beta,0.0,dst);
- cvResetImageROI(src1);
- cvResetImageROI(src2);
- cvResetImageROI(dst);
- cvShowImage("jdh1",src1);
- cvShowImage("jdh2",src2);
- cvShowImage("jdh3",dst);
- }
效果图:

http://blog.csdn.net/jdh99/article/details/6401000
qt+opencv对两幅图片进行融合的更多相关文章
- Opencv实现两幅图像融合
实现两幅图像线性(不同系数下)的融合涉及到Opencv中两个关键的方法,addWeighted()和createTrackbar() addWeighted方法: 函数原型: void addWeig ...
- (3两个例子)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练 1综述http://www.cnblogs.com/jsxyhelu/p/7907241.html2环境架设http://www.cn ...
- Qt opencv程序运行异常
搭建了两次qt opencv vs ,经常出现程序运行异常.找了几个原因如下: 1.opencv的路径未配置或配置有误. 2.qt中pro文件包含不正确. 3.测试opencv程序不正确.如视频或图片 ...
- (7拾遗)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练 1综述http://www.cnblogs.com/jsxyhelu/p/7907241.html2环境架设http://www.cn ...
- (6综合实验)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练 1综述http://www.cnblogs.com/jsxyhelu/p/7907241.html2环境架设http://www.cn ...
- (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练 1综述http://www.cnblogs.com/jsxyhelu/p/7907241.html2环境架设http://www.cn ...
- (2环境架设)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练 1综述http://www.cnblogs.com/jsxyhelu/p/7907241.html2环境架设http://www.cn ...
- (4程序框架)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练 1综述http://www.cnblogs.com/jsxyhelu/p/7907241.html2环境架设http://www.cn ...
- (5编译使用最新opencv)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练 1综述http://www.cnblogs.com/jsxyhelu/p/7907241.html 2环境架设http://www.c ...
随机推荐
- cordova通过指纹插件进行指纹验证
原文:cordova通过指纹插件进行指纹验证 版权声明:本文为博主原创文章,转载须注明出处,博客地址:https://blog.csdn.net/wx13227855087 https://blog. ...
- 利用WPF建立自己的3d gis软件(非axhost方式)(十)SDK中一些自带的展示面板应用
原文:利用WPF建立自己的3d gis软件(非axhost方式)(十)SDK中一些自带的展示面板应用 先下载SDK:https://pan.baidu.com/s/1M9kBS6ouUwLfrt0zV ...
- H∞一般控制问题的鲁棒叙述性说明
Robust Control System:反馈控制有承受一定类不确定能力的影响,这一直保持在这种不确定的条件(制)稳定.动态特性(灵敏度)和稳态特性(逐步调整)的能力. 非结构不确定性(Unstru ...
- jquery即点击改
$(document).on("click",".sp",function(){ var brand_id=$(this).attr("valu ...
- Memory device control for self-refresh mode
To ensure that a memory device operates in self-refresh mode, the memory controller includes (1) a n ...
- Method of packet transmission from node and content owner in content-centric networking
A method of transmitting a content reply packet from a content owner in content-centric networking ( ...
- Android 悬浮窗权限校验
原文:Android 悬浮窗权限校验 悬浮窗权限: <uses-permission android:name="android.permission.SYSTEM_ALERT_WIN ...
- 网络编程Socket它TCP它TIME_WAIT国家具体解释
下面我们用最简单的一对一的客户server编程模型重现遇到的一些问题: 初学者socket当写作socket名其妙的问题.比方说bind函数返回的常见错误是EADDRINUSE 使用以下的程序重现这个 ...
- matlab 深度学习
0. 超参的定义 超参的定义直接使用结构体: opts.alpha = 1; opts.batchsize = 50; opts.numepoch = 5; 1. Autoencoder Train ...
- 仿真算法数据结构与算法 C++实现
模拟算法:仿真的全过程,通过改变数学模型参数,进一步观察状态更改这些参数发生变化正当程序. 算法思路:利用随机函数来模拟不可预测发生在自然界.(srand() 和 rand()函数生成一个随机数) 模 ...