win cmake編譯 opencv4.X + pyhton3.7 x64


在超極本上本來不想編譯了,反正沒有cuda。但發現即使下載的opencv_contrib也不包含sift等等nonfree庫了,要自己編譯開編譯選項才可以。坑啊,自己編譯吧。反正opencv已經這么龐大了,也不得不自己編譯了。

小坑若干,折騰1天。記之。

下載opencv和opencv_contrb 直接從github上下載:

https://github.com/opencv/opencv/archive/master.zip

https://github.com/opencv/opencv_contrib/archive/master.zip

 

20191231更新:

 

FFMPEG: Download: ffmpeg_version.cmake

Try 1 failed

 

參考 https://www.cnblogs.com/huluwa508/p/10142718.html

cd 到

 XXX\opencv-master\.cache\ffmpeg

發現

 

2個dll下載好了

但是.cmake文件下載不到

ad57c038ba34b868277ccbe6dd0f9602-ffmpeg_version.cmake

而cmake的下載地址,根據

XXX\opencv-master\build\CMakeDownloadLog.txt

#do_copy "ffmpeg_version.cmake" "ad57c038ba34b868277ccbe6dd0f9602" "https://raw.githubusercontent.com/opencv/opencv_3rdparty/a66a24e9f410ae05da4baeeb8b451912664ce49c/ffmpeg/ffmpeg_version.cmake" "D:/soft/dev/opencv/opencv-master/build/3rdparty/ffmpeg"
#missing "D:/soft/dev/opencv/opencv-master/build/3rdparty/ffmpeg/ffmpeg_version.cmake"

直接用科學方法打開標紅的鏈接,發現只是個純文本文件

set(FFMPEG_libavcodec_FOUND 1)
set(FFMPEG_libavformat_FOUND 1)
set(FFMPEG_libavutil_FOUND 1)
set(FFMPEG_libswscale_FOUND 1)
set(FFMPEG_libavresample_FOUND 1)

set(FFMPEG_libavcodec_VERSION 58.54.100)
set(FFMPEG_libavformat_VERSION 58.29.100)
set(FFMPEG_libavutil_VERSION 56.31.100)
set(FFMPEG_libswscale_VERSION 5.5.100)
set(FFMPEG_libavresample_VERSION 4.0.0)

直接復制內容,粘貼到 體積為0的cmake文件ad57c038ba34b868277ccbe6dd0f9602-ffmpeg_version.cmake 中,保存完事。

 

如果報warning:

CMake Warning at cmake/OpenCVGenSetupVars.cmake:54 (message):   

CONFIGURATION IS NOT SUPPORTED: validate setupvars script in install   directory Call Stack (most recent call first)

去掉這個編譯選項,應該沒啥用

 

 

 

1 vs2017

也就是所謂的vc15. 要檢測是否安裝了完整的C++功能和cmake支持,用vs 的installer可以選上。

否則cmake的configure都會報錯。

2python3配置

python3的路徑一個一個補上:注意library 很迷惑,有python3.lib和 .a的。注意區別

 

其他要注意的也就是這些了,那個OPENCV_PYTHON3_VERSION沒啥用,選上好像就編譯cv2.pyd不過了。保持空就可以。

基本上多點幾次Configure,直到不報錯就OK。

然后Generate,然后進vs2017,"ALL_BUILD"  右鍵"生成",經過漫長編譯,如果正常,應該全都編譯成功。之前因為python編譯不過,卡了半天。

然后“INSTALL” “生成”,但python路徑下仍然沒有看見cv2.pyd

3手動安裝opencv_python

想起應該是win10加強了C盤權限的管理,進命令行都得用管理員權限了。

那么:直接用管理員權限啟動PowerShell,cd到之前設置的 opencv的build路徑(我給設置了D:\soft\dev\opencv\build),找到instal

我這里是

D:\soft\dev\opencv\build\install\python

 

 

要用develop來安裝,不是常用的install否則會報錯

ImportError: ERROR: recursion is detected during loading of "cv2" binary extensions. Check OpenCV installation.

https://github.com/opencv/opencv/issues/13202

python setup.py develop

 然后就能又在py上使用sift了

 

編譯完成,在python環境里查看信息

>>> import cv2
>>> print(cv2.getBuildInformation())

General configuration for OpenCV 4.2.0-dev =====================================
Version control: unknown

Extra modules:
Location (extra): D:/soft/dev/opencv/opencv_contrib-master/modules
Version control (extra): unknown

Platform:
Timestamp: 2019-12-31T05:29:29Z
Host: Windows 6.1.7601 AMD64
CMake: 3.16.2
CMake generator: Visual Studio 15 2017
CMake build tool: C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/MSBuild/15.0/Bin/MSBui
ld.exe
MSVC: 1916

CPU/HW features:
Baseline: SSE SSE2 SSE3
requested: SSE3
Dispatched code generation: SSE4_1 SSE4_2 FP16 AVX AVX2 AVX512_SKX
requested: SSE4_1 SSE4_2 AVX FP16 AVX2 AVX512_SKX
SSE4_1 (16 files): + SSSE3 SSE4_1
SSE4_2 (2 files): + SSSE3 SSE4_1 POPCNT SSE4_2
FP16 (1 files): + SSSE3 SSE4_1 POPCNT SSE4_2 FP16 AVX
AVX (5 files): + SSSE3 SSE4_1 POPCNT SSE4_2 AVX
AVX2 (29 files): + SSSE3 SSE4_1 POPCNT SSE4_2 FP16 FMA3 AVX AVX2
AVX512_SKX (6 files): + SSSE3 SSE4_1 POPCNT SSE4_2 FP16 FMA3 AVX AVX2 AVX_512F AVX512_COMMON AVX512_SKX

C/C++:
Built as dynamic libs?: YES
C++ Compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.16.27
023/bin/Hostx86/x64/cl.exe (ver 19.16.27034.0)
C++ flags (Release): /DWIN32 /D_WINDOWS /W4 /GR /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D
_SCL_SECURE_NO_WARNINGS /Gy /bigobj /Oi /fp:precise /EHa /wd4127 /wd4251 /wd4324 /wd4275 /wd4512 /wd4589 /MP8 /M
D /O2 /Ob2 /DNDEBUG
C++ flags (Debug): /DWIN32 /D_WINDOWS /W4 /GR /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D
_SCL_SECURE_NO_WARNINGS /Gy /bigobj /Oi /fp:precise /EHa /wd4127 /wd4251 /wd4324 /wd4275 /wd4512 /wd4589 /MP8 /M
Dd /Zi /Ob0 /Od /RTC1
C Compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.16.27
023/bin/Hostx86/x64/cl.exe
C flags (Release): /DWIN32 /D_WINDOWS /W3 /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SC
L_SECURE_NO_WARNINGS /Gy /bigobj /Oi /fp:precise /MP8 /MD /O2 /Ob2 /DNDEBUG
C flags (Debug): /DWIN32 /D_WINDOWS /W3 /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SC
L_SECURE_NO_WARNINGS /Gy /bigobj /Oi /fp:precise /MP8 /MDd /Zi /Ob0 /Od /RTC1
Linker flags (Release): /machine:x64 /INCREMENTAL:NO
Linker flags (Debug): /machine:x64 /debug /INCREMENTAL
ccache: NO
Precompiled headers: NO
Extra dependencies: cudart_static.lib nppc.lib nppial.lib nppicc.lib nppicom.lib nppidei.lib nppif.lib nppi
g.lib nppim.lib nppist.lib nppisu.lib nppitc.lib npps.lib cublas.lib cufft.lib -LIBPATH:C:/Program Files/NVIDIA GPU Comp
uting Toolkit/CUDA/v10.0/lib/x64
3rdparty dependencies:

OpenCV modules:
To be built: aruco bgsegm bioinspired calib3d ccalib core cudaarithm cudabgsegm cudacodec cudafeatur
es2d cudafilters cudaimgproc cudalegacy cudaobjdetect cudaoptflow cudastereo cudawarping cudev datasets dnn dnn_objdetec
t dnn_superres dpm face features2d flann fuzzy gapi hfs highgui img_hash imgcodecs imgproc line_descriptor ml objdetect
optflow phase_unwrapping photo plot python3 quality rapid reg rgbd saliency shape stereo stitching structured_light supe
rres surface_matching text tracking ts video videoio videostab world xfeatures2d ximgproc xobjdetect xphoto
Disabled: -
Disabled by dependency: -
Unavailable: cnn_3dobj cvv freetype hdf java js matlab ovis python2 python2 sfm viz
Applications: tests perf_tests apps
Documentation: NO
Non-free algorithms: NO

Windows RT support: NO

GUI:
Win32 UI: YES
VTK support: NO

Media I/O:
ZLib: build (ver 1.2.11)
JPEG: build-libjpeg-turbo (ver 2.0.2-62)
WEBP: build (ver encoder: 0x020e)
PNG: build (ver 1.6.37)
TIFF: build (ver 42 - 4.0.10)
JPEG 2000: build (ver 1.900.1)
OpenEXR: build (ver 2.3.0)
HDR: YES
SUNRASTER: YES
PXM: YES
PFM: YES

Video I/O:
DC1394: NO
FFMPEG: YES (prebuilt binaries)
avcodec: YES (58.54.100)
avformat: YES (58.29.100)
avutil: YES (56.31.100)
swscale: YES (5.5.100)
avresample: YES (4.0.0)
GStreamer: NO
DirectShow: YES
Media Foundation: YES
DXVA: YES

Parallel framework: Concurrency

Trace: YES (with Intel ITT)

Other third-party libraries:
Intel IPP: 2019.0.0 Gold [2019.0.0]
at: D:/soft/dev/opencv/opencv-master/build/3rdparty/ippicv/ippicv_win/icv
Intel IPP IW: sources (2019.0.0)
at: D:/soft/dev/opencv/opencv-master/build/3rdparty/ippicv/ippicv_win/iw
Lapack: NO
Eigen: NO
Custom HAL: NO
Protobuf: build (3.5.1)

NVIDIA CUDA: YES (ver 10.0, CUFFT CUBLAS)
NVIDIA GPU arch: 61
NVIDIA PTX archs:

cuDNN: NO

OpenCL: YES (NVD3D11)
Include path: D:/soft/dev/opencv/opencv-master/3rdparty/include/opencl/1.2
Link libraries: Dynamic load

Python 3:
Interpreter: C:/Program Files/Python37/python.exe (ver 3.7.6)
Libraries: C:/Program Files/Python37/libs/python37.lib (ver 3.7.6)
numpy: C:/Program Files/Python37/lib/site-packages/numpy/core/include (ver 1.17.4)
install path: C:/Program Files/Python37/Lib/site-packages/cv2/python-3.7

Python (for build): C:/Users/xcsc/.windows-build-tools/python27/python.exe

Java:
ant: NO
JNI: NO
Java wrappers: NO
Java tests: NO

Install to: D:/soft/dev/opencv/opencv-master/build/install
-----------------------------------------------------------------


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM