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,如图所示。
配置opencv
打开CMake,按图示填写两个文本框:
点击configure按钮(如图)。
弹出窗口如图所示,按图示选择。
输入C和C++编译器位置,如图。
然后确定,点击configure。配置是会检查数据类型、头文件、环境等信息。经过漫长的配置过程后,文本框里出现很多红色项目。
现在,要对上面的项目进行操作。具体如下表。
内容 | 操作 |
WITH_WEBP | 取消勾选 |
WITH_Qt | 勾选 |
WITH_OPENGL | 勾选 |
OPENCV_VS_VERSIONINFO_SKIP | 添加BOOL,要勾选 |
OPENCV_ENABLE_ALLOCATOR_STATS | 取消勾选 |
此时,再次单击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
100%结束后,输入”mingw32-make install",这回就一帆风顺。把C:\opencv\opencv_binaries\bin加入path,重启电脑生效。
附录1 如何添加path路径。
“计算机”邮件,选择属性,如图。
选择红框内容,点击“环境变量”,找到path双击,点击“添加”即可。
附录2 测试代码
新建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;
}
好了,如果你已经看到图片显示,说明你成功了。
图片路径不要用相对路径,如果编译时帧图像宽度为零会报错。