QT5 MSVC2017 64bit配置OpenCV4.5无需编译与示范程序

QT5 MSVC2017 64bit配置OpenCV4.5无需编译与示范程序_第1张图片

环境:Windows 10 64位

Opencv版本:4.5

QT:5.14

QT5 MSVC2017配置OpenCV

版本参考:

opencv msvc c++对应版本

1.安装MSVC2017(vs2017)

打开Visual Studio Installer,点击修改

QT5 MSVC2017 64bit配置OpenCV4.5无需编译与示范程序_第2张图片

 选择vs2017生成工具:

QT5 MSVC2017 64bit配置OpenCV4.5无需编译与示范程序_第3张图片

2.下载OpenCV4.5并解压

opencv4.5版本

3.解压opencv-4.5.4-vc14_vc15.exe

QT5 MSVC2017 64bit配置OpenCV4.5无需编译与示范程序_第4张图片

vc15 = Visual Studio 2017

OpenCV4.5 支持 VS2017,VS2019(x64)

OpenCV4.6 支持 VS2017,VS2019(x64)

3.QT安装与配置:

Qt 下载
国内镜像网站
这里给大家推荐几个国内著名的 Qt 镜像网站,主要是各个高校的:

中国科学技术大学:http://mirrors.ustc.edu.cn/qtproject/
清华大学:https://mirrors.tuna.tsinghua.edu.cn/qt/
北京理工大学:http://mirror.bit.edu.cn/qtproject/
中国互联网络信息中心:https://mirrors.cnnic.cn/qt/

Qt6 官网QtCreator 下载与安装方法win10_qt6下载-CSDN博客

4.环境变量配置

一、配置QT安装的路径

二、配置Opencv的解压的位置

QT5 MSVC2017 64bit配置OpenCV4.5无需编译与示范程序_第5张图片

5.打开QT Creator新建项目

QT5 MSVC2017 64bit配置OpenCV4.5无需编译与示范程序_第6张图片

 QT5 MSVC2017 64bit配置OpenCV4.5无需编译与示范程序_第7张图片

选择qmake

QT5 MSVC2017 64bit配置OpenCV4.5无需编译与示范程序_第8张图片

QT5 MSVC2017 64bit配置OpenCV4.5无需编译与示范程序_第9张图片

QT5 MSVC2017 64bit配置OpenCV4.5无需编译与示范程序_第10张图片 选择MSVC2017 64bit

QT5 MSVC2017 64bit配置OpenCV4.5无需编译与示范程序_第11张图片

点击完成

QT5 MSVC2017 64bit配置OpenCV4.5无需编译与示范程序_第12张图片 

5.双击打开pro文件

QT5 MSVC2017 64bit配置OpenCV4.5无需编译与示范程序_第13张图片

编辑区域右键选择添加库

QT5 MSVC2017 64bit配置OpenCV4.5无需编译与示范程序_第14张图片 QT5 MSVC2017 64bit配置OpenCV4.5无需编译与示范程序_第15张图片

QT5 MSVC2017 64bit配置OpenCV4.5无需编译与示范程序_第16张图片

添加库文件路径后:

QT5 MSVC2017 64bit配置OpenCV4.5无需编译与示范程序_第17张图片

pro文件已添加路径:

QT5 MSVC2017 64bit配置OpenCV4.5无需编译与示范程序_第18张图片

 示范代码:

这个函数是显示原图,值得注意的是,在转化8位3通道的图像时,OpenCV和QImage使用的红蓝通道是相反的,需要使用rgbSwapped方法互换一下

void MainWindow::on_pushButton_read_clicked()
{
    std::string str3 = file_read(i);
    cv::Mat srcimage = cv::imread(str3);
    /* -------------------------------------------------------- */
   // cv::Mat srcimage=cv::imread("../MainWindow/2.jpg");
    //cv::imshow("原始图片",src);R
    //Mat转QImage 像素   oldlabel放置原图
       QImage disimage = QImage(srcimage.data,srcimage.cols,srcimage.rows,srcimage.cols*srcimage.channels(),QImage::Format_RGB888);
       QImage imag =disimage.rgbSwapped();//将红蓝通道对换
      // disimage = imag.scaled(ui->label->width(),ui->label->height(),Qt::KeepAspectRatioByExpanding);
       disimage = imag.scaled(ui->label->width(),ui->label->height(),Qt::KeepAspectRatio);
     ui->label->setPixmap(QPixmap::fromImage(disimage));
}
/*
 * ---------------------------
opencv_t1.exe - 系统错误
---------------------------
由于找不到 opencv_world454d.dll,无法继续执行代码。重新安装程序可能会解决此问题。
---------------------------
确定
---------------------------
https://www.cnblogs.com/txwtech/p/17844109.html ,解决方法
 *
 * */

std::string MainWindow::file_read(int &i)
{
    /* 可以读取绝对路径下的第一张图片 */
    //获取应用程序可执行文件的文件路径:
    //QDir::currentPath();
    //获取当前工程目录
    QDir dir(path);
    QStringList filename ;
    filename << "*.png" << "*.jpg";//可叠加,可使用通配符筛选
    QStringList results;
    results = dir.entryList(filename,QDir::Files | QDir::Readable,QDir::Name);

    //增加一个判定
    int a=results.size();
    //qDebug()<a)
    {
        QWidget *parent=new QWidget;
       // QMessageBox::information(parent,tr("aa"),tr("aa"),tr("aa"),tr("aa"));
      //  QMessageBox::information(this,tr("提示"),tr("最后一张,将返回第一张"),tr("确定"),tr("取消"));
        QMessageBox::information(parent,tr("提示"),tr(" 最后一将返回第一张 "),tr("确定"),tr("取消"));
       // QMessageBox::information(parent,tr("aa"),tr(" 最后一将返回第一张 "));

        qDebug()<exists(path);
           if(exist)
            {// QMessageBox::warning(this,"创建文件夹","文件夹已经存在!");//会显示中文乱码
              QMessageBox::information(this,tr("提示"),tr("创建成功"),tr("确定"),tr("取消"));
           }
           else
           {
               bool ok = temp->mkdir(path);
               if(ok)
               {
                   ;
                  // QMessageBox::information(this,u8"提示",u8"创建失败!",u8"确定",u8"取消");
               }
                  // QMessageBox::warning(this,"创建文件夹","文件夹创建成功!");

           }
}


void MainWindow::on_pushButton_to_gray_clicked()
{

        std::string str3=file_read(i);
        cv::Mat srcimage=cv::imread(str3);
        //cv::imshow("原始图片",src);
        cv::Mat img_resize,img_Gray,img_blur;
        //cv::resize(srcimage, img_resize,cv::Size(), 0.5, 0.5);
        cvtColor(srcimage, img_Gray, cv::COLOR_BGR2GRAY);
        GaussianBlur(img_Gray, img_blur, cv::Size(3, 3), -1, -1);//高斯模糊化

        //Mat转QImage 像素   oldlabel放置原图
          // QImage disimage = QImage(img_blur.data,img_blur.cols,img_blur.rows,img_blur.cols*img_blur.channels(),QImage::Format_Grayscale8);
        //Mat转QImage 像素   oldlabel放置灰度图
        QImage disimage = QImage(img_blur.data,img_blur.cols,img_blur.rows,img_blur.cols*img_blur.channels(),QImage::Format_Grayscale8);
        ui->label_2->setPixmap(QPixmap::fromImage(disimage.scaled(ui->label_2->width(),ui->label_2->height(),Qt::KeepAspectRatio)));//,Qt::KeepAspectRatio在后面加上这个就可以保证图片不变形
}

QT5 MSVC2017 64bit配置OpenCV4.5无需编译与示范程序_第19张图片

工程源代码:

待更新。。。

你可能感兴趣的:(QT编程,qt,opencv,开发语言)