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博客