OpenCV4在arm上的编译和集成虽然不难,终归是有些报错,解决起来闹心。因此用了一下新版的Visual Studio 2022。总体简单多了。
一、下载
git clone https://github.com/opencv/opencv.git
或者
git clone https://gitee.com/mirrors/opencv.git
下载后得到一个opencv的源文件夹,改名opencv4
二、编译和安装
1、打开vs2022,点“打开本地文件夹”
2、选中刚才下载的文件夹opencv4
3、vs开始自动配置工程
4、点生成-->全部生成。等待10分钟,OpenCV就编译完成了,一个报错也没有。
5、点生成-->安装OpenCV,就安装成功了。
6、编译好的库在D:\prj\opencv\opencv4\out\install目录。
把D:\prj\opencv\opencv4\out\install\x64-Debug\x64\vc17\bin添加到环境变量。
重启电脑,生效环境变量。
这样编译和安装都搞定了, 点文件-->关闭文件夹。
三、集成和测试
1、打开vs2022,点“创建新项目”
2、选择“CMake项目” (读者也可以选择其他工程,博主比较喜欢CMake)下一步![](https://i-blog.csdnimg.cn/blog_migrate/c32253faf31efe1aed21d9bf7491aae8.png)
3、输入工程名称TestOpenCV4,位置在opencv4平级的目录testopencv,点“创建”
4、工程建好后,把刚才编译的D:\prj\opencv\opencv4\out\install\x64-Debug拷贝到工程。并把x64-Debug目录名改为OpenCV4.
5、双击右边的CMakeLists.txt, 添加四行代码:
set(OpenCV_DIR OpenCV4)
include_directories(OpenCV4/include)
find_package(OpenCV REQUIRED)
target_link_libraries(TestOpenCV4 ${OpenCV_LIBS} -lpthread -ldl)
6、双击右边的TestOpenCV4.cpp,填入一段播放影片的测试代码。
// TestOpenCV4.cpp: 定义应用程序的入口点。
//
#include "TestOpenCV4.h"
#include "opencv2/opencv.hpp"
#include "opencv2/core.hpp"
#include "opencv2/imgproc.hpp"
#include "opencv2/highgui.hpp"
#include "opencv2/videoio.hpp"
#include <iostream>
using namespace cv;
using namespace std;
int main() {
VideoCapture cap;
cap.open("D:\\迅雷云盘\\流浪地球.mp4");
if (!cap.isOpened())//如果视频不能正常打开则返回
{
cout << "OpenCV open failed!" << endl;
return -1;
}
Mat frame;
while (1)
{
cap >> frame;//等价于cap.read(frame);
if (frame.empty())//如果某帧为空则退出循环
break;
imshow("video", frame);
waitKey(20);//每帧延时20毫秒
}
cap.release();//释放资源
return 0;
}