OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库,它提供了大量的通用算法和功能,用于处理图像和视频数据。C++ 通常提供比 Python 更高的执行速度,对于需要高性能处理的任务(如实时视频处理或大规模图像分析) 。C++ 提供更细致的内存管理控制和跨平台性。这对于优化大型应用或在内存限制较大的环境(如嵌入式系统)中运行非常重要。
OpenCV 可以实现的应用:
-
图像处理:包括滤波、色彩空间转换、图像阈值设定、边缘检测、几何变换(如旋转、缩放)等。
-
面部识别与追踪:使用特定算法(如哈尔特征级联分类器)来识别和追踪视频中的人脸。
-
物体检测和识别:可以检测图像中的特定物体(如车辆、行人、标志)并对其进行分类。
-
运动分析和对象追踪:分析视频中的运动模式,追踪移动对象。
-
3D重建:从多个视角的图像中重建物体或场景的三维模型。
-
增强现实:结合现实世界的图像和计算机生成的数据,创建增强现实应用。
-
机器人视觉:使机器人能够通过摄像头感知周围环境并作出决策。
-
自动驾驶汽车视觉系统:用于车辆检测、车道检测、交通标志识别等。
-
医学图像处理:分析医学图像,如X射线、MRI 或 CT扫描。
-
视频分析:视频监控、事件检测、视频内容理解。
-
计算摄影学:高动态范围成像、全景图像拼接等。
-
实时滤镜和效果:图像和视频的实时美化和效果处理。
目录
一、Visual Studio的安装
二、opencv下载
三、vs环境配置
1、配置包含目录
2、配置库目录
编辑3、配置链接器
4、配置环境变量并重启
四、c++代码测试
一、Visual Studio的安装
Visual Studio 2022 IDE - 适用于软件开发人员的编程工具
二、opencv下载
Releases - OpenCV
下载windows版本即可,解压后:
三、vs环境配置
创建新项目:
选择空项目
项目名称随便,位置自己记住。
进入后,改成这样
1、配置包含目录
打开视图->其他窗口->属性管理器->如图属性->VC++目录->包含目录
添加:请根据自己解压的openv4.8目录进行相应修改(下同)
E:\opencv\opencv\build\include
E:\opencv\opencv\build\include\opencv2
2、配置库目录
E:\opencv\opencv\build\x64\vc16\lib
3、配置链接器
opencv_world480.lib
4、配置环境变量并重启
在环境变量下添加:
E:\opencv\opencv\build\x64\vc16\bin
重启vs。
至此,w11 下vs,opencv配置完成。
四、c++代码测试
//OpenCV 库的主要头文件。它允许程序使用 OpenCV 提供的各种功能和类。
// 在 C++ 中,#include 指令用于引入库或其他源文件。
//类比python中的import cv2
#include<opencv2/opencv.hpp>
//int main(int argc, char** argv) 是 C++ 程序的入口点。
//当程序运行时,这个函数被自动调用。argc 表示传递给程序的参数数量,
//argv 是一个字符串数组,包含这些参数。在这个程序中,这两个参数没有被使用。
int main(int argc, char** argv) {
//这一行创建了一个 cv::Mat 类型的变量 src。
//cv::Mat 是 OpenCV 中用于存储图像的类。
//cv::imread 函数用于读取指定路径的图像文件。在这个例子中,
//它试图从 "E:/yolov8/bus.jpg" 路径加载图像。
//加载的图像被存储在 src 变量中。
cv::Mat src = cv::imread("E:/yolov8/bus.jpg");
//条件语句检查 src 图像是否为空(即图像是否未成功加载)
if (src.empty()) {
printf("could not load image ...");
return -1;
}
//cv::imshow 函数用于在窗口中显示图像。
//这里创建了一个窗口,标题为 "输入图像",并显示 src 图像。
cv::imshow("输入图像",src);
//让窗口保持打开状态,直到有键盘输入。
cv::waitKey(0);
//在 C++ 中,主函数的返回值通常用来指示程序的退出状态。
//返回值 0 通常表示程序成功执行。
return 0;
}