您的位置:首页 > 编程语言 > Qt开发

qt+opencv对两幅图片进行融合

2011-05-06 22:46 344 查看
本文博客链接: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);
}




效果图:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: