win10系统 python3.8.2,cmake-3.15.5-win64-x64,opencv4.6
编译方式见:OpenCV的编译 - 知乎
本文主要总结问题。赠人玫瑰手留余香。
|------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 问题1  | Problem with installing OpenCV using Visual Studio and CMake (error code: MSB3073)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| 解决方法 | Use below steps: 1. Navigate to your build folder 2. Right click on ALL-BUILD.vcxproj 3. Select properties 4. Select Security tab 5. Select Edit 6. Check Full Control Box 7. Open ALL-BUILD.vcxproj 8. Right click on INSTALL and select Rebuild Worked for me.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| 问题2  | ## 关于Cmake编译后opencv中使用不了SIFT,SURF等                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
|      | 
 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
|      | 
 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
|      | 之后在cmake中点击configure,注意这一步不要delete cache                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| 问题3  | CMake Warning (dev) at cmake/OpenCVUtils.cmake:144 (find_package): Policy CMP0148 is not set: The FindPythonInterp and FindPythonLibs modules are removed. Run "cmake --help-policy CMP0148" for policy details. Use                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
|      | 在CMakeList.txt 文件中增加一行: if(POLICY CMP0148) cmake_policy(SET CMP0148 OLD) endif() 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| 问题4  | Installing OpenCV 3.1.0 with CMake on Windows 7, opencv_ffmpeg.dll invalid hash                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
|      | 一种方法是在ffmpeg目录下方downloads文件,并放上响应的文件。但还是直接放到./cache/文件夹下面最方面 如下: 
 I found sub-string ffmpeg.dll in opencv\sources\3dparty\ffmpeg\ffmpeg.cmake: set(FFMPEG_BINARIES_COMMIT "8aeefc4efe3215de89d8c7e114ae6f7a6091b8eb") set(FFMPEG_FILE_HASH_BIN32 "89c783eee1c47bfc733f08334ec2e31c") set(FFMPEG_FILE_HASH_BIN64 "35fe6ccdda6d7a04e9056b0d73b98e76") set(FFMPEG_FILE_HASH_CMAKE "8606f947a780071f8fcce8cbf39ceef5") set(FFMPEG_DOWNLOAD_URL https://raw.githubusercontent.com/Itseez/opencv_3rdparty/${FFMPEG_BINARIES_COMMIT}/ffmpeg/)ocv_download(PACKAGE ...) Download files: https://raw.githubusercontent.com/Itseez/opencv_3rdparty/8aeefc4efe3215de89d8c7e114ae6f7a6091b8eb/ffmpeg/{opencv_ffmpeg.dll,opencv_ffmpeg_64.dll,ffmpeg_version.cmake} and copy it to: opencv\sources\3rdparty\ffmpeg\downloads\%HASH%\ Then cmake.exe -G "CodeBlocks - MinGW Makefiles" . and mingw32-make.exe                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| 问题5  | 'cmake' will raise "OpenCVGenSetupVars.cmake" error (when configure OpenCV)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
|      | had the same problem. The compilation was still successful after ignoring this warning. So the second time I built it, I removed the configuration option(OPENCV_GENERATE_SETUPVARS). 也就是OPENCV_GENERATE_SETUPVARS后面的√取消掉                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| 问题6  | Opencv_contrib编译                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
|      | 在opencv在cmake软件中configure结束后添加opencv_contrib文件夹中的modules文件到变量中。 需要使用SURF等库时在NONFREE后面打钩 之后点击configure,注意这一步不要delete cache,直接继续configure                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| 问题7  | face_landmark_model.dat,ffmpeg,ippicv等安装                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
|      | 下载完成之后,在\源码\.cache\文件夹下,找到源文件,复制下文件名(校验码+文件), 把下载的文件拷贝过来,修改成\.cache\目录里的名称。如下 
 
 
 然后重新在cmake里面configure就可以了                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| 问题8  | 严重性 代码 说明 项目 文件 行 禁止显示状态 错误 C2059 语法错误:")" opencv_test_objdetect D:\opencv\opencv\source\opencv-4.x\modules\objdetect\test\test_qrcode_encode.cpp 324 警告 C4819 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失 opencv_test_objdetect D:\opencv\opencv\source\opencv-4.x\modules\objdetect\test\test_qrcode_encode.cpp 1 错误 C2059 语法错误:"for" opencv_test_objdetect D:\opencv\opencv\source\opencv-4.x\modules\objdetect\test\test_qrcode_encode.cpp 324 错误 C2143 语法错误: 缺少")"(在";"的前面) opencv_test_objdetect D:\opencv\opencv\source\opencv-4.x\modules\objdetect\test\test_qrcode_encode.cpp 324 错误 C2065 "i": 未声明的标识符 opencv_test_objdetect D:\opencv\opencv\source\opencv-4.x\modules\objdetect\test\test_qrcode_encode.cpp 324 错误 C2065 "i": 未声明的标识符 opencv_test_objdetect D:\opencv\opencv\source\opencv-4.x\modules\objdetect\test\test_qrcode_encode.cpp 324 错误 C2275 "std::string": 将此类型用作表达式非法 opencv_test_objdetect D:\opencv\opencv\source\opencv-4.x\modules\objdetect\test\test_qrcode_encode.cpp 326 错误 C2146 语法错误: 缺少")"(在标识符"input_info"的前面) opencv_test_objdetect D:\opencv\opencv\source\opencv-4.x\modules\objdetect\test\test_qrcode_encode.cpp 326 错误 C2065 "input_info": 未声明的标识符 opencv_test_objdetect D:\opencv\opencv\source\opencv-4.x\modules\objdetect\test\test_qrcode_encode.cpp 328 错误 C2065 "input_info": 未声明的标识符 opencv_test_objdetect D:\opencv\opencv\source\opencv-4.x\modules\objdetect\test\test_qrcode_encode.cpp 350 错误 C2737 "gtest_ar": 必须初始化 const 对象 opencv_test_objdetect D:\opencv\opencv\source\opencv-4.x\modules\objdetect\test\test_qrcode_encode.cpp 350 错误 C2059 语法错误:"}" opencv_test_objdetect D:\opencv\opencv\source\opencv-4.x\modules\objdetect\test\test_qrcode_encode.cpp 435 错误 C2143 语法错误: 缺少";"(在"}"的前面) opencv_test_objdetect D:\opencv\opencv\source\opencv-4.x\modules\objdetect\test\test_qrcode_encode.cpp 435 |
|      | 更改文件编码格式保存 在类别找到文件,在右边命令一栏找到"高级保存选项", 将文字编码改为936的简体中文                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
|      | 移植问题                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
|      | 如果你是在本机使用,那么现在你就可以直接去python里对应的虚拟环境中调用cv2了。如果是准备再另一个电脑上使用,看下文 首先进入你最开始在cmake里设置的build路径 然后找到lib-python3-release-然后这里有个pyd文件 我们就要这个,拷出来 然后我们找到install-x64-vc16-bin,里面有2个dll,拷出来 将这3个文件都拷贝到py程序的根目录,你就可以使用opencv了,大小确实小了点哈(尴尬) ------------------------------------------------ 原文链接:https://blog.csdn.net/weixin_44287933/article/details/133032558                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |