[声明:本文由非仅一人写成,电脑界面可能不同]
OpenCV是什么?
OpenCV(Open Source Computer Vision)是一个开源的计算机视觉库,由一系列函数和算法组成,用于处理图像和视频数据。它提供了丰富的图像处理和计算机视觉功能,包括图像读取和保存、图像预处理、特征提取、物体检测、目标跟踪、摄像机标定等。OpenCV可以在多个平台上运行,包括Windows、Linux、macOS等,支持多个编程语言,如C++、Python和Java等。因其功能强大和易用性,OpenCV被广泛应用于计算机视觉领域的开发和研究。
——ChatGPT
开始配置
配置过程繁琐,推荐读者按照本文一样的配置。
下载opencv
地址:opencv.org/releases/,下载最新版本即可。
下载CMake
地址:cmake.org/download/,推荐下载3.17.3版本。
安装opencv和CMake
opencv安装实际上是一个重新编译过程,读者可自行安装opencv和CMake(opencv:本文安装在C:\opencv目录).下载完成后,在opencv目录下新建文件夹opencv_binaries,如图所示。
添加系统PATH变量(如果存在可以忽略,不然可能会报错:找不到编译器)
在编译前,需要编辑系统环境变量,加入“CMake的路径”和“qt中两个编译器的路径”
添加如下变量(下列路径仅供参考,实际使用请更改未定处):(如上图所示【新建(N)】=>【输入或浏览路径】=>【确定】=>【退出后应用】)
(QT安装位置)\QT版本号\mingw73_64\bin\
(QT安装位置)\Tools\mingw730_64\bin\
(CMAKE安装位置)\CMake\bin\
然后重启电脑,进行如下操作。
配置opencv
打开CMake,按图示填写两个文本框:
点击configure按钮(如图)。
弹出窗口如图所示,按图示选择。
输入C和C++编译器位置,如图。
然后确定,点击configure。配置是会检查数据类型、头文件、环境等信息。经过漫长的配置过程后,文本框里出现很多红色项目。
现在,要对上面的项目进行操作。具体如下表。
内容 | 操作 |
WITH_WEBP | 取消勾选 |
WITH_Qt | 勾选 |
WITH_OPENGL | 勾选 |
OPENCV_VS_VERSIONINFO_SKIP | 添加BOOL,要勾选 |
OPENCV_ENABLE_ALLOCATOR_STATS | 取消勾选 |
WITH_PROTOBUF(我有一个问题就是因为它!) | 取消勾选 |
此时,再次单击configure按钮。再次配置后,直至没有红色项目,关闭cmake。
在opencv_binaries文件夹(用资源管理器打开)上方输入cmd回车打开命令提示符。
打开后,输入命令“mingw32-make"回车。
如果想要加快速度,可以输入"mingw32-make -j x",其中x替换成你的电脑线程数,如图。
等待漫长的配置过程。其中,如果出现以下错误之一而停止,再输一遍命令即可。
Linking C static library ..\lib\liblibwebp.a
[ 15%] Built target libwebp
mingw32-make: *** [Makefile:165: all] Error 2
[ 34%] Linking CXX shared library ..\..\bin\libopencv_imgproc480.dll
[ 35%] Built target opencv_imgproc
mingw32-make: *** [Makefile:165: all] Error 2
[ 40%] Linking CXX shared library ..\..\bin\libopencv_imgcodecs480.dll
[ 40%] Built target opencv_photo
[ 40%] Linking CXX shared library ..\..\bin\libopencv_features2d480.dll
[ 40%] Built target opencv_imgcodecs
[ 40%] Built target opencv_features2d
mingw32-make: *** [Makefile:165: all] Error 2
万分注意,一定要记得看一下他的报错缘由,如果实在无法解决问题,可以尝试重新回到CMake,找到相似的报错项,对他进行编辑或修改。
100%结束后,输入”mingw32-make install",这回就一帆风顺。把C:\opencv\opencv_binaries\bin加入path,重启电脑生效。
附录1 测试代码
新建plain C++项目,在pro文件中添加以下语句:
INCLUDEPATH += C:/opencv/build/include
LIBS += C:/opencv/opencv_binaries/lib/lib*.a
在main.cpp中添加:
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
Mat m=imread("C:/a.jpg",1);
imshow("test",m);
waitKey(0);
return 0;
}
好了,如果你已经看到图片显示,说明你成功了。
图片路径不要用相对路径,如果编译时帧图像宽度为零会报错。