用Opencv在QT下写的第一个图像处理程序

第一步,下载Opencv

下载后放在目录下,比如放在C盘根目录下,里面有两个文件夹build与sources

第二步,用Qtcreate创建widget工程,这里命名为opencvImageProcess,基类选QMainWindow。一路自动生成后,有如下工程模式,

第三步,在QT生成的工程中以外部库方式导入opencv库,导入后,工程文件内容如下,

win32:CONFIG(release, debug|release): LIBS += -LC:/opencv/build/x64/vc15/lib/ -lopencv_world453
else:win32:CONFIG(debug, debug|release): LIBS += -LC:/opencv/build/x64/vc15/lib/ -lopencv_world453d
else:unix: LIBS += -LC:/opencv/build/x64/vc15/lib/ -lopencv_world453
INCLUDEPATH += C:/opencv/build/x64/vc15
DEPENDPATH += C:/opencv/build/x64/vc15
INCLUDEPATH += c:\opencv\build\include

可根据自己实际opencv安装情况调整路径,目的是找到库文件(链接没有问题)与头文件(编译没有问题)

第四步,添加简单的图形处理测试程序代码。

要完成的功能如下,

按翻转后,

核心代码解析,

 1)打开图形文件,显示在Label中

void MainWindow::on_pushButton_open_clicked()
{
    //调用窗口打开文件
    QString filename = QFileDialog::getOpenFileName(this,
                                                    tr("open image"),
                                                    ".",
                                                    tr("Image file(*.png *.jpg *.bmp)"));
    image = imread(filename.toLocal8Bit().data());
    if(image.data) {
        ui->pushButton_flip->setEnabled(true);
    }
    //将Mat图像转换为QImage图像,才能显示在label上
    QImage img = QImage((const unsigned char*)(image.data),
                        image.cols, image.rows, QImage::Format_RGB888);//格式转换
    //设定图像大小自适应label窗口的大小
    img = img.scaled(ui->label->size(), Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
    ui->label->setPixmap(QPixmap::fromImage(img));
 
}
 2)翻转图形,显示在Label中
void MainWindow::on_pushButton_flip_clicked()
{
 
    flip(image, image, 1);
    QImage img = QImage((const unsigned char*)(image.data),
                        image.cols, image.rows, QImage::Format_RGB888);
    img = img.scaled(ui->label->size(), Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
 
 
    ui->label->clear();//清除窗口
    ui->label->setPixmap(QPixmap::fromImage(img));//显示其它图像
 
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值