本文博客链接: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