搭建opencv+vs环境,实现第一个opencv窗口测试。
属性页面下:
在Vc++ 目录->包含目录->添加一下目录:
D:\opencv3\opencv\build\include
D:\opencv3\opencv\build\include\opencv //新版本没有cv 只有cv2
D:\opencv3\opencv\build\include\opencv2
添加库目录:
D:\opencv3\opencv\build\x64\vc15\lib
链接器->常规->附加库目录:
D:\opencv3\opencv\build\x64\vc15\lib //没有这一步会出现opencv_world430d.lib无法打开
链接器->输入->附加依赖项:opencv_world430d.lib
INCLUDEPATH +=C:\newapp\opencv\opencv\build\include\
C:\newapp\opencv\opencv\build\include\opencv2\
LIBS +=C:\newapp\opencv\opencv\build\x64\vc15\lib\opencv_world430d.lib
q下使用opencv(使用msvc)
1.配置环境变量
msvc:
C:\newapp\opencv\opencv\build\bin
C:\newapp\opencv\opencv\build\x64\vc15\bin
C:\newapp\opencv\opencv\build\x64\vc15\lib
mingw:(没有验证)
C:\OpenCV_s\OpenCV-MinGW-Build-OpenCV-3.4.8-x64\x64\mingw\bin
配置opencv
在pro文件中添加一些东西,根据自己选择的编译器,来添加,这里换成自己安装的路径-----太麻烦了未使用
MSVC:
INCLUDEPATH +=C:\OpenCV_s\opencv_vc\opencv\build\include\
C:\OpenCV_s\opencv_vc\opencv\build\include\opencv\
C:\OpenCV_s\opencv_vc\opencv\build\include\opencv2
LIBS +=C:\OpenCV_s\opencv_vc\opencv\build\x64\vc15\lib\opencv_world3414.lib
或 C:\OpenCV_s\opencv_vc\opencv\build\x64\vc15\lib\opencv_world3414d.lib
注意: opencv_world3414d.lib 为debug版,opencv_world3414.lib为release版
mingw:
INCLUDEPATH+= C:\OpenCV_s\OpenCV-MinGW-Build-OpenCV-3.4.8-x64\include\
C:\OpenCV_s\OpenCV-MinGW-Build-OpenCV-3.4.8-x64\include\opencv\
C:\OpenCV_s\OpenCV-MinGW-Build-OpenCV-3.4.8-x64\include\opencv2
LIBS+=C:\OpenCV_s\OpenCV-MinGW-Build-OpenCV-3.4.8-x64\x64\mingw\bin\libopencv_*.dll
创建pri文件,将下方内容写入,同样设置为自己安装的路径,文件可以放在任何位置,但建议放在安装OpenCV的路径下,方便自己查找.
INCLUDEPATH += C:/newapp/opencv/opencv/build/include
Debug: {
LIBS += -lC:/newapp/opencv/opencv/build/x64/vc15/lib/opencv_world430d
}
Release: {
LIBS += -lC:/newapp/opencv/opencv/build/x64/vc15/lib/opencv_world430
}
注意:
反斜杠与斜杠的区别,否则会导致找不到头文件
以及路径不要多写.lib (例如:-lC:/newapp/opencv/opencv/build/x64/vc15/lib/opencv_world430d.lib)
之后在项目pro文件中添加下面这一行即可:
include(c:/newapp/opencv/opencv.pri)
此时还是遇到了一个问题 找不到头文件:
error: dependent '..\..\..\..\..\..\Qt\5.14.2\msvc2017\include\QtWidgets\QMainWindow' does not exist.
官方文档在pro中添加如下内容生效:
QMAKE_PROJECT_DEPTH = 0
进行简单测试,运行成功
#include <QCoreApplication>
#include"opencv2/opencv.hpp"
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// Set up code that uses the Qt event loop here.
// Call a.quit() or a.exit() to quit the application.
// A not very useful example would be including
// #include <QTimer>
// near the top of the file and calling
// QTimer::singleShot(5000, &a, &QCoreApplication::quit);
// which quits the application after 5 seconds.
// If you do not need a running Qt event loop, remove the call
// to a.exec() or use the Non-Qt Plain C++ Application template.
using namespace cv;
Mat image=imread("D:/photo/sh.jpg");
imshow("Output",image);
return a.exec();
}