opencv-1-QT_OPENCV 安装

既然我们是从头开始的, 那我们就从 opencv 的安装开始吧, 主要环境为:

安装

由于 QT 默认的 C++ 编译器是 minGW, 而 opencv 编译好的 dll 文件和 lib 文件都是 只有 vc14版本与vc15版本1.

PS: 如果你使用 minGW 编译 opencv 的程序会 会提示很多错误, 主要是编译得到的库 不支持的原因, 这里要做对照, VS的版本可以 是 VS2015或者 VS2017 对应 opencv 的 vc14和vc15目录, VS2019 暂时无法对应QT的版本, 所以一定要注意这里

个人喜欢的安装顺序是,

  1. VS2017
  2. QT
  3. opencv

1. VS2017 安装

自从 VS 2017版本之后, 都是线上安装了, 对于以前的版本如VS2015,需要先下载一个 7G的 iso 文件, 再虚拟光驱的方式安装了, 省事不少.
微软官方-VS2017下载

在线安装 安装文件只有几兆, 点击运行之后能够在线下载, 很快很快. 推荐这个方法来, 安装的时候 建议勾选 全部下载后安装.

VS installer

我已经安装了 VS2017, 所以可以直接启动, 点击可用选择 VS2017 专业版本(VS2017 Professional) 或者 社区(Community) 版本, 后者是免费的, 前者自己选择试用或者 自己搜索方法,
具体的版本区别可以看《VS2017各版本区别_开发工具_大白的求知路-优快云博客》

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, 都很小, 就都装上了, 如果感觉, 红框标出来的最好都勾选, 黄色标记的建议勾选, 其他的随意吧, 个人习惯,

QT 组件选择

安装可以选择文件夹, 建议选择大点的空间, 我这样选择也是占有 3.6G 的空间, 全选可能有 10G,
其实安装完成之后可以去安装文件夹找到 MaintenanceTool.exe 的程序, 能够对QT 程序进行卸载, 自己可以查阅相关博客看到, 不做介绍.

完成安装之后, 我们打开 QTCreator 3

依次点击菜单栏上的 工具--选项--Kits--套件, 由于我们先安装VS, QT安装之后会自动检测到相应的版本, 如果失败, 前面会有红色感叹号或者黄色警告, 我们选择 Desktop Qt5.14.2 MSVC2017 64bit , 会列出来具体的参数信息, 我们尽量将 Compiler (编译器这里) 都选择 amd64 的 编译器,

QT套件设置

在上面我们让 安装了 CDB, 这里 就是第二个箭头指出来的 cdb.exe, 不然此处无法选择, 就会是 黄色的感叹号了, 也不能使用 QT 调试 程序了,

PS: 只是不能在 MSVC2017 下调试程序 , cdb 配套 MSVC 编译器, GDB 配套 MinGW 里面的 gcc 和 g++ 编译器 也能进行程序的调试, 只是如果配置这套工具链, 我们需要参考OpenCV+Qt+Win10开发环境配置 这篇文章里面 的步骤去编译 mingw 的opencv ,
我的设备需要编译将近一天时间才能完成, 太浪费时间了.

MinGW QT 调试

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:\Vision\opencv430文件夹下面, 得到了上面的 文件列表, 主要用到的库文件都是在 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 了


  1. 《VS(Visual Studio)与VC(Visual C++)版本对应关系_C/C++_aoanng的博客-优快云博客》. 见于 2020年4月20日. https://blog.youkuaiyun.com/colourful_sky/article/details/79495536.
    ↩︎

  2. 《Win10, VS2017环境下OpenCV3.4.2的配置 - Jisongxie - 博客园》. 见于 2020年4月20日. https://www.cnblogs.com/jisongxie/p/9316283.html. ↩︎

  3. QT自带的代码 UI IDE ↩︎

你已经通过 Conda 安装OpenCV 的相关包: ```bash libopencv 4.10.0 qt6_py312h39fdb22_606 conda-forge opencv 4.10.0 qt6_py312hfab33ed_606 conda-forge py-opencv 4.10.0 qt6_py312h8df5404_606 conda-forge ``` 但仍然遇到: ``` ImportError: DLL load failed while importing cv2: 找不到指定的模块。 ``` 这表明 OpenCV 的 Python 接口(`cv2.pyd`)虽然存在,但其依赖的某些 DLL 文件缺失或未被正确加载。 --- ## 🔍 原因分析 ### 1. **环境路径问题(PATH)** Conda 安装的 DLL 文件可能不在系统 `PATH` 中,导致 Python 无法找到这些依赖。 ### 2. **Python 环境与 Conda 环境不一致** 你可能在 Conda 环境中安装OpenCV,但运行的是全局 Python,而不是 Conda 的 Python。 ### 3. **OpenCV 的 `cv2` 模块路径错误** 你可能安装了多个版本的 OpenCV,导致 Python 导入了错误的 `cv2.pyd`。 --- ## ✅ 解决方法 ### ✅ 方法 1:确保你正在使用 Conda 环境中的 Python ```bash conda activate your_env_name which python # Linux/macOS where python # Windows ``` 确保输出的是 Conda 环境路径,例如: ``` C:\Users\user\anaconda3\envs\your_env_name\python.exe ``` 如果不是,请使用 `conda activate` 切换到正确的环境。 --- ### ✅ 方法 2:检查 `cv2` 模块的路径 在 Conda 环境中运行: ```python import cv2 print(cv2.__file__) ``` 你应该看到类似输出: ``` C:\Users\user\anaconda3\envs\your_env_name\lib\site-packages\cv2\cv2.pyd ``` 如果不是这个路径,说明你导入了其他位置的 `cv2`,请检查是否与其他 Python 环境冲突。 --- ### ✅ 方法 3:添加 Conda 的 DLL 路径到系统 PATH Conda 安装的 DLL 文件通常在: ``` C:\Users\user\anaconda3\envs\your_env_name\Library\bin ``` 将该路径加入系统环境变量 `PATH`: #### Windows 上操作步骤: 1. 打开「此电脑」→右键→「属性」→「高级系统设置」→「环境变量」 2. 在「系统变量」中找到 `Path` → 点击「编辑」 3. 添加 Conda 环境的 `Library\bin` 路径,例如: ``` C:\Users\user\anaconda3\envs\your_env_name\Library\bin ``` --- ### ✅ 方法 4:验证 DLL 是否存在 进入你的 Conda 环境的 `Library\bin` 目录,检查是否包含以下 DLL 文件: ``` opencv_core4100.dll opencv_imgproc4100.dll opencv_highgui4100.dll opencv_imgcodecs4100.dll opencv_videoio4100.dll ``` 如果没有这些文件,说明安装不完整,建议重新安装: ```bash conda install -c conda-forge opencv --force-reinstall ``` --- ### ✅ 方法 5:使用 `py` 启动器(仅限 Windows) 如果你有多个 Python 版本,使用 `py -m` 命令确保你使用的是正确的解释器: ```bash py -m cv2 ``` 或者: ```bash py -c "import cv2; print(cv2.__version__)" ``` --- ### ✅ 示例代码:验证 OpenCV 功能 ```python import cv2 print("OpenCV version:", cv2.__version__) img = cv2.imread('test.jpg') if img is not None: print("Image loaded successfully.") else: print("Failed to load image.") ``` --- ## 🧪 常用调试命令 ```bash # 查看已安装opencv 包 conda list opencv # 查看 cv2 的路径 python -c "import cv2; print(cv2.__file__)" # 查看 cv2 的版本 python -c "import cv2; print(cv2.__version__)" ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值