使用Qt构建OpenCV(Windows下)

£神魔★判官ぃ 2022-04-25 10:08 283阅读 0赞

【写在前面】

因为实在没什么好写的,然后最近又在玩OpenCV,所以写了这篇文章。

需要说明的是我构建的是MinGW版的,当然VC版的话只需要改一下编译器,然后重新编译就行。

虽然是说用Qt构建,实际上还是使用CMake,只不过Qt用习惯了。


【正文开始】

首先,需要的准备工具有:

  1. 1. CMake (我的版本是3.13)
  2. 2. Qt (包含MinGW)

配置 CMake 就很简单了:

  1. 1. 官网下载二进制分发版,地址:[https://cmake.org/download/][https_cmake.org_download]

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTEyODMyMjY_size_16_color_FFFFFF_t_70

  1. 2. 解压安装,然后将安装目录下的 bin 目录的路径加入环境变量,比如:D:\\Cmake\\bin

然后,我们下载 OpenCV 的源码,这可以在 Github 上直接获得:https://github.com/opencv/opencv

现在开始构建,构建目录建议新建一个,我的是 D:\opencv\opencv-mingw。

我们直接使用 Qt 打开 OpenCV 的 CMakeList.txt,然后构建套件选择 MinGW 64bit,使用 release。

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTEyODMyMjY_size_16_color_FFFFFF_t_70 1

解析完成后:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTEyODMyMjY_size_16_color_FFFFFF_t_70 2

现在进行一些配置,点左侧的项目,找到 WITH:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTEyODMyMjY_size_16_color_FFFFFF_t_70 3

这里简单的将 WITH_QT 和 WITH_OPENGL 勾上,构建目标 install,然后开始编译:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTEyODMyMjY_size_16_color_FFFFFF_t_70 4

写到这儿有点烦,因为之前早就编译好了,现在又重新编译一遍,所以我直接说结果吧。

20190531154631140.png

然后编译的一堆库在 D:\opencv\opencv-mingw\install\x64\mingw\ 下的 bin 和 lib 下。

这里可以把 bin 目录的路径加入环境变量。

现在测试一下是否能用,pro 文件要记住链接静态库:

pro文件:

  1. LIBS += -LD:/opencv/build-mingw/install/x64/mingw/lib \
  2. -lopencv_core410.dll \
  3. -lopencv_imgcodecs410.dll \
  4. -lopencv_highgui410.dll \
  5. -lopencv_imgproc410.dll \
  6. -lopencv_videoio410.dll

main.cpp:

  1. #include "opencv2/opencv.hpp"
  2. using namespace cv;
  3. int main(int argc, char **argv)
  4. {
  5. Mat image = imread("./image/2.jpg");
  6. namedWindow("OpenCV Test", WINDOW_NORMAL);
  7. imshow("OpenCV Test", image);
  8. waitKey();
  9. return 0;
  10. }

结果如下:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTEyODMyMjY_size_16_color_FFFFFF_t_70 5


【结语】

唔…终于写完这个了,每次配置新的库都感觉很烦,一堆的东西,编译又慢,而且期间出现了一些问题,自己弄了半天才搞定,所以这里写的都是步骤,但并没有包含一些问题的处理。

因此,如果出了编译问题的,建议直接百度吧 ( 因为我也忘了咳咳 ) ∠( ᐛ 」∠)_~

发表评论

表情:
评论列表 (有 0 条评论,283人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Ubuntu16.01构建Qt5开发环境(1)

     虽然Qt命运多舛,但是也阻挡不了程序员对它的喜爱。经历了一系列波折之后,现在到在芬兰公司Digia手中,Qt又将迎来一个发展。Qt5就是在这种情况之下发布的。正值Ubuntu

    相关 QT 使用jrtplib

     1最近要在QT平台上实现流媒体传输,网上大多使用jrtplib 开源库,经过前期的收集资料,这两天终于成功的在QT上成功的运行起来了jrtplib 里面的exmple1.:有