第一步,下载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));//显示其它图像
}
|