windows10 x64 环境下的 opencv 3.2.0 在qt5.8.0(msvc 2015)上使用的配置

如题,最近搞了几天头都大了,最新版的没有找到结合前人的例子最终还是弄好了。

所用版本 Windows 10 

    OpenCV 3.2.0

    QT 5.8.0 x64 MSVC 2015

前提条件要安装有vs2015 

第一步:安装QT 并配置环境变量 (已有详细教程不再赘述)

 

第二部:解压OpenCV

注意:解压Opencv后 会有两个文件夹 bulid 和sources,试了很多次都有问题,

解决办法是将build内容复制到一个新建文件夹下(如下)新建一个文件夹 MSVC_OpenCV

 

OpenCV3.2.0比较方便的一点就是不需要像之前版本那要需要包涵多个 opencv_*.lib

新建一个Qt Widgets Application 并在*.pro 文件最后追加如下代码

opencv_world320d表示debug下的lib 

opencv_world320表示release下的lib
 1 INCLUDEPATH+=D:\MSVC_OpenCV\include
 2              D:\MSVC_OpenCV\include\opencv
 3              D:\MSVC_OpenCV\include\opencv2
 4 
 5 CONFIG(debug,debug|release) {
 6 LIBS += -LD:\MSVC_OpenCV\x64\vc14\lib \
 7     -lopencv_world320d
 8 } else {
 9 LIBS += -LD:\MSVC_OpenCV\x64\vc14\lib \
10     -lopencv_world320
11 }

之后在mainwindow.h中添加头文件

不要忘记在mainwindow.c中添加  using namespace cv;

 

 

好了之后在ui界面编辑器下拖入一个pushbutton 添加clicked()事件

对应代码:

void MainWindow::on_pushButton_clicked()
{
    Mat image;
    QString fileName = QFileDialog::getOpenFileName(this,tr("Open Image"),".",tr("Image Files (*.png *.jpg *.bmp)"));
    qDebug()<<"filenames:"<<fileName;
    //namedWindow(fileName.toStdString(),CV_WINDOW_AUTOSIZE);
    if (!fileName.isNull())
    {
       image = imread(fileName.toStdString());
       if (image.empty())
       {
           namedWindow("can not find image : a");
           waitKey(5000);
       }
       else
       {
           imshow(fileName.toStdString(),image);
       }
    }
    else
    {
        qDebug()<<"file is empty";
    }
}

 运行结果如下:

 

posted @ 2017-03-21 14:22  wuzhiting  阅读(3805)  评论(1编辑  收藏  举报