opencv-1-QT_OPENCV 安装
既然我们是从头开始的, 那我们就从 opencv 的安装开始吧, 主要环境为:
- win10 1909 - 18363.720 版本
- VS2017 15.9.22
- QT 5.14.2
- opencv 4.3.0
安装
由于 QT 默认的 C++ 编译器是 minGW, 而 opencv 编译好的 dll 文件和 lib 文件都是 只有 vc14版本与vc15版本[1].
PS: 如果你使用 minGW 编译 opencv 的程序会 会提示很多错误, 主要是编译得到的库 不支持的原因, 这里要做对照, VS的版本可以 是 VS2015或者 VS2017 对应 opencv 的 vc14和vc15目录, VS2019 暂时无法对应QT的版本, 所以一定要注意这里
个人喜欢的安装顺序是,
- VS2017
- QT
- opencv
1. VS2017 安装
自从 VS 2017版本之后, 都是线上安装了, 对于以前的版本如VS2015,需要先下载一个 7G的 iso 文件, 再虚拟光驱的方式安装了, 省事不少.
微软官方-VS2017下载
在线安装 安装文件只有几兆, 点击运行之后能够在线下载, 很快很快. 推荐这个方法来, 安装的时候 建议勾选 全部下载后安装.
我已经安装了 VS2017, 所以可以直接启动, 点击可用选择 VS2017 专业版本(VS2017 Professional) 或者 社区(Community) 版本, 后者是免费的, 前者自己选择试用或者 自己搜索方法,
具体的版本区别可以看《VS2017各版本区别_开发工具_大白的求知路-CSDN博客》
VS 系列都比较大, 会安装很多依赖库, 如果C盘比较小的话, 建议安装在其他硬盘, 能够节省一点空间
其实在安装 VS之后, 我们就能进行opencv 的代码编写了, 具体的可以参考Win10, VS2017环境下OpenCV3.4.2的配置, 其实大部分的教程都是这么做的, 但是我们是做 的更深入, 所以这里如果只是想使用 opencv 的可以参考链接进行
[2], 我们要做的是一个图像处理的平台, 所以要做的比较深入,
为了能够在QT 上调试程序, 可以参考这篇文章QT使用CDB调试程序, 介绍了
windows CDB 下载链接
先安装, 后面会介绍.
2. QT 安装
使用 QT官方 release下载相应版本的QT, 我们这里使用的是 QT5.14.2
一路 next , 如果需要必须登录的话, 就去注册一个, 以前好像能跳过的, 现在不能跳过了
如果出现 必须启用一个资源库之类的提示, 就直接配置就好
QT的组件不需要全部选择,
选择你需要的部分就行了, 其实 MinGW 可以全部取消的 ,暂时先留着, , UWP是 win10 商店的, 其实没人用 , 自己考虑就好, 源代码不需要, QT的一堆组件其实只有 不到20M, 都很小, 就都装上了, 如果感觉, 红框标出来的最好都勾选, 黄色标记的建议勾选, 其他的随意吧, 个人习惯,
安装可以选择文件夹, 建议选择大点的空间, 我这样选择也是占有 3.6G 的空间, 全选可能有 10G,
其实安装完成之后可以去安装文件夹找到 MaintenanceTool.exe
的程序, 能够对QT 程序进行卸载, 自己可以查阅相关博客看到, 不做介绍.
完成安装之后, 我们打开 QTCreator
[3]
依次点击菜单栏上的 工具--选项--Kits--套件
, 由于我们先安装VS, QT安装之后会自动检测到相应的版本, 如果失败, 前面会有红色感叹号或者黄色警告, 我们选择 Desktop Qt5.14.2 MSVC2017 64bit
, 会列出来具体的参数信息, 我们尽量将 Compiler (编译器这里) 都选择 amd64 的 编译器,
在上面我们让 安装了 CDB, 这里 就是第二个箭头指出来的 cdb.exe
, 不然此处无法选择, 就会是 黄色的感叹号了, 也不能使用 QT 调试 程序了,
PS: 只是不能在 MSVC2017 下调试程序 , cdb 配套 MSVC 编译器, GDB 配套 MinGW 里面的 gcc 和 g++ 编译器 也能进行程序的调试, 只是如果配置这套工具链, 我们需要参考OpenCV+Qt+Win10开发环境配置 这篇文章里面 的步骤去编译 mingw 的opencv ,
我的设备需要编译将近一天时间才能完成, 太浪费时间了.
3. OpenCV 安装
opencv 可以在官方 release页面直接下载, 我们这里选择下载opencv4.3.0 windows 版本, 下载包有 202M
opencv 真的是越来越大了
opencv 的安装包其实就是一个自解压文件, 点击运行选择目的路径即可.
- opencv430
- +---build
- | +---bin
- | +---etc
- | | +---haarcascades
- | | +---lbpcascades
- | | ---licenses
- | +---include
- | | ---opencv2
- | | +---calib3d
- | | +---core
- | | +---dnn
- | | +---features2d
- | | +---flann
- | | +---gapi
- | | +---highgui
- | | +---imgcodecs
- | | +---imgproc
- | | +---ml
- | | +---objdetect
- | | +---photo
- | | +---stitching
- | | +---video
- | | ---videoio
- | +---java
- | | +---x64
- | | ---x86
- | +---python
- | | ---cv2
- | ---x64
- | +---vc14
- | | +---bin
- | | ---lib
- | ---vc15
- | +---bin
- | ---lib
- ---sources
- +---3rdparty
- | +---carotene
- | +---cpufeatures
- | +---ffmpeg
- | +---include
- | +---ippicv
- | +---ittnotify
- | +---libjasper
- | +---libjpeg
- | +---libjpeg-turbo
- | +---libpng
- | +---libtengine
- | +---libtiff
- | +---libwebp
- | +---openexr
- | +---openvx
- | +---protobuf
- | +---quirc
- | +---tbb
- | ---zlib
- | ---patches
- +---apps
- | +---annotation
- | +---createsamples
- | +---interactive-calibration
- | +---traincascade
- | +---version
- | ---visualisation
- +---cmake
- | +---android
- | +---checks
- | +---FindCUDA
- | +---platforms
- | ---templates
- +---data
- | +---haarcascades
- | +---haarcascades_cuda
- | +---hogcascades
- | +---lbpcascades
- | ---vec_files
- +---doc
- | +---images
- | +---js_tutorials
- | +---pattern_tools
- | +---py_tutorials
- | +---tools
- | ---tutorials
- +---include
- | ---opencv2
- +---modules
- | +---calib3d
- | +---core
- | +---dnn
- | +---features2d
- | +---flann
- | +---gapi
- | +---highgui
- | +---imgcodecs
- | +---imgproc
- | +---java
- | +---js
- | +---ml
- | +---objdetect
- | +---photo
- | +---python
- | +---stitching
- | +---ts
- | +---video
- | +---videoio
- | ---world
- +---platforms
- | +---android
- | +---ios
- | +---js
- | +---linux
- | +---maven
- | +---osx
- | +---scripts
- | +---wince
- | +---winpack_dldt
- | ---winrt
- ---samples
我们放置在了 F:Visionopencv430
文件夹下面, 得到了上面的 文件列表, 主要用到的库文件都是在 build 文件夹内, source 文件夹下面是 源代码,
实际上 我们在程序中需要用的 只有 这里需要的程序, 动态链接库 dll 文件, 静态库 lib 文件, 以及 包含目录 include 文件夹,
- opencv430
- +---dll
- | opencv_videoio_ffmpeg430_64.dll
- | opencv_world430.dll
- | opencv_world430.pdb
- | opencv_world430d.dll
- | opencv_world430d.pdb
- |
- +---include
- | ---opencv2
- | +---calib3d
- | +---core
- | +---dnn
- | +---features2d
- | +---flann
- | +---gapi
- | +---highgui
- | +---imgcodecs
- | +---imgproc
- | +---ml
- | +---objdetect
- | +---photo
- | +---stitching
- | +---video
- | ---videoio
- ---lib
- opencv_world430.lib
- opencv_world430d.lib
如果不是需要调试信息的话, dll 文件夹下面的 pdb 文件可以全部删除,
在忽略 dll 文件之后, 我将自己常用的 C++ 的依赖库 都放在了 github上
SChen1024/CVDepend
有需要的可以去查看下载,
后续
到这里, 我们才算是完成了第一步的安装程序, 后面 开始上手进行使用 opencv 了