当前位置: 首页 > news >正文

Windows+Cmake编译Opencv-python

因为修改了opencv里面一些模块的源码,想重新编译然后在python中调用,有个大坑整整找了一周的bug。

如果是供c++调用,则用Cmake GUI,安装网上方法,编译安装即可,如果是要打开python,BUILD_opencv_python3=ON,按照下面流程:

1、不要用Cmake GUI,直接用命令行进行编译安装

2、编译和安装命令

cmake -G "Visual Studio 17 2022" ^-DCMAKE_BUILD_TYPE=Release ^-DCMAKE_INSTALL_PREFIX=E:/project/opencv/opencv410_build/install ^-DOPENCV_EXTRA_MODULES_PATH=E:/project/opencv/opencv_contrib-4.10.0/modules ^-DBUILD_opencv_python3=ON ^-DPYTHON3_EXECUTABLE=D:/softwareinstall/anaconda3/envs/mmdet/python.exe ^-DPYTHON3_INCLUDE_DIR=D:/softwareinstall/anaconda3/envs/mmdet/include ^-DPYTHON3_LIBRARY=D:/softwareinstall/anaconda3/envs/mmdet/libs/python39.lib ^-DPYTHON3_PACKAGES_PATH=D:/softwareinstall/anaconda3/envs/mmdet/Lib/site-packages ^-DPYTHON3_NUMPY_INCLUDE_DIRS=D:/softwareinstall/anaconda3/envs/mmdet/Lib/site-packages/numpy/core/include ^-DBUILD_EXAMPLES=OFF ^-DBUILD_TESTS=OFF ^-DBUILD_PERF_TESTS=OFF ^-DBUILD_opencv_world=OFF ^-DBUILD_SHARED_LIBS=ON ^-DOPENCV_SKIP_PYTHON_LOADER=OFF ^-DINSTALL_PYTHON_EXAMPLES=OFF ^-D WITH_OPENCL=OFF ^../opencv-4.10.0安装cmake --build . --config Release --target INSTALL

3、有个大坑

import cv2出现

ImportError: DLL load failed while importing cv2: 找不到指定的模块或者ImportError: DLL load failed while importing cv2: 动态链接库(DLL)初始化例程失败。

解决方法:

1、一定要先关闭所有使用虚拟环境的应用,退出虚拟环境,原来如果用pip install安装了opencv,用pip uninstall 卸载,然后如果cv2文件夹还在,则删除,

pip show opencv-python 查看还没有

2、清理pip缓存

 pip cache purge

3、不要进入虚拟环境,直接在build路径下编译,安装

4、import cv2 出现ImportError: DLL load failed while importing cv2: 动态链接库(DLL)初始化例程失败。则

conda install conda-forge::vc14_runtime

参考

ImportError: DLL load failed while importing cv2: 动态链接库(DLL)初始化例程失败 conda &系统环境下_importerror: dll load failed while importing libtr-CSDN博客

http://www.lqws.cn/news/159895.html

相关文章:

  • 【数据结构】树形结构--二叉树(二)
  • docker 搭建php 开发环境 添加扩展redis、swoole、xdebug(2)
  • Palo Alto Networks Expedition存在命令注入漏洞(CVE-2025-0107)
  • nodejs里面的http模块介绍和使用
  • Ubuntu系统配置C++的boost库(含filesystem模块)的方法
  • ASP.NET Core使用Quartz部署到IIS资源自动被回收解决方案
  • 【.net core】.KMZ文件解压为.KML文件并解析为GEOJSON坐标数据集。附KML处理多线(LineString)闭环问题
  • 37.第二阶段x64游戏实战-封包-寻找Socket套接字
  • 最新研究揭示云端大语言模型防护机制的成效与缺陷
  • 【.net core】天地图坐标转换为高德地图坐标(WGS84 坐标转 GCJ02 坐标)
  • SpringBoot项目移动之后无法运行
  • vue-18(使用 Vuex 插件实现高级功能)
  • 03.01、三合一
  • MyBatis-Plus深度全解:从入门到企业级实战
  • 【Elasticsearch】Elasticsearch 核心技术(二):映射
  • 力扣100题之128. 最长连续序列
  • el-tabs 切换时数据不更新的问题
  • 6月5日day45
  • 群晖NAS如何在虚拟机创建飞牛NAS
  • 基于STM32的DS18B20温度远程监测LCD1602显示
  • STL优先级队列的比较函数与大堆小堆的关系
  • LoRA:大模型高效微调的低秩之道——原理解析与技术实现
  • 代码随想录算法训练营第九天| 151.翻转字符串里的单词、55.右旋转字符串 、字符串总结
  • 25.6.5学习总结
  • day47 TensorBoard学习
  • label-studio的使用教程(导入本地路径)
  • 优化学习笔记
  • 热门消息中间件汇总
  • JAVA-springboot JUnit单元测试
  • 【Android基础回顾】五:AMS(Activity Manager Service)