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

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

2017-05-08 15:46 567 查看
如题,最近搞了几天头都大了,最新版的没有找到结合前人的例子最终还是弄好了。

所用版本 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 文件最后追加如下代码

INCLUDEPATH+=D:/MSVC_OpenCV/include\

D:/MSVC_OpenCV/include/opencv\

D:/MSVC_OpenCV/include/opencv2


CONFIG(debug,debug|release) {

LIBS += -LD:/MSVC_OpenCV/x64/vc14/lib \

-lopencv_world320d

} else {

LIBS += -LD:/MSVC_OpenCV/x64/vc14/lib \

-lopencv_world320

}



opencv_world320d表示debug下的lib

opencv_world320表示release下的lib


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

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

#include "mainwindow.h"

#include "ui_mainwindow.h"

#include <QFileDialog>

#include <QDebug>

#include <opencv2/core/core.hpp>

#include <opencv2/highgui/highgui.hpp>

#include <opencv2/imgproc/imgproc.hpp>

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";
}
}


 运行结果如下:



 起初系统总是报错:XXXX.exe ...Crash!

解决方法:

1.更改下Debug或者Release路径,然后重新编译运行。

2.关闭QT程序,重新启动一下。(我遇到的情况是重启程序解决的,特此注释!)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: