opencv(c++)入门基础

opencv 4.5架构

calib3d:这个模块名称由calibration (校准)和3D这两个单词的缩写组合而成的,通过名字可以知道,模块主要包含相机标定与立体视觉等功能,例如物体位姿估计、三维重建、摄像头标定等。
core:核心功能模块,主要包含OpenCV 库的基础结构以及基本操作,例如OpenCV基本数据结构、绘图函数、数组操作相关函数、动态数据结构等。
dnn:深度学习模块,这个模块是OpenCV4版本的一个特色,其主要包括构建神经网络、加载序列化网络模型等。但是该模块目前仅适用于正向传递计算(测试网络),原则上不支持反向计算( 训练网络)。
features2d:这个模块名称是由features (特征)和2D这两个单词的缩写组合而成的,其功能主要为处理图像特征点,例如特征检测、描述与匹配等。
flann:这个模块名称是Fast Library for Approximate Nearest Neighbors (快速近似最近邻库)的缩写,这个模块是高维的近似近邻快速搜索算法库,主要包含快速近似最近邻搜索与聚类等。
gapi:这个模块是OpenCV 4.0中新增加的模块,旨在加速常规的图像处理,与其他模块相比,这个模块主要充当框架,而不是某些特定的计算机视觉算法。
highgui:高层GUI图形用户界面,包含创建和操作显示图像的窗口、处理鼠标事件以及键盘命令、提供图形交互可视化界面等。
imgcodecs:图像文件读取与保存模块,主要用于图像文件读取与保存。
imgproc:这个模块名称由image ( 图像)和process (处理)两个单词的缩写组合而成的,是重要的图像处理模块,主要包括图像滤波、几何变换、直方图、特征检测与目标检测等。ml:机器学习模块,主要为统计分类、回归和数据聚类等。
objdetect:目标检测模块,主要用于图像目标检测,例如检测Haar 特征。
photo:计算摄影模块,主要包含图像修复和去噪等。
stitching:图像拼接模块,主要包含特征点寻找与匹配图像、估计旋转、自动校准、 接缝估计等图像拼接过程的相关内容。
video:视频分析模块,主要包含运动估计、背景分离、对象跟踪等视频处理相关内容。videoio:视频输入输出模块,主要用于读取与写入视频或者图像序列。
过对OpenCV 4.5模块构架的介绍,相信读者已经对OpenCV 4.5整体架构有了一 定的了解。单来说,OpenCV 就是将众多图像处理和视觉处理工具集成在一起的软件开 发包(SoftwarepmentKit, SDK) ,其自身并不复杂,只要通过学习都可以轻松掌握其使用方式。

案例一:

#include
#include 
using namespace cv;
using namespace std;

int main()
{
	cout << "Built with OpenCV " << CV_VERSION << endl;
	Mat image = imread("219420016.jpg");//见注1 
	Mat img;
	imshow("原始图像", image);//见注2
	resize(image, img, Size(360, 202));//见注3
	imwrite("xinyuan.jpg", img);//见注4
	imshow("缩小图像", img);
	cvtColor(img, img, CV_RGB2GRAY);//见注5
	imshow("灰度图像", img);
	waitKey(0);//见注6

}

注1:imread()函数,从指定路径下读取图片。imread函数读取的是图片的每个像素点的数值,得到一个数字矩阵,这个数字矩阵,就存放在Mat类型的所定义的变量image中。点进去就可以看到Mat是一个类。定义了多个构造函数。Mat具体使用方法请点击我的另外一篇博客(点击这里)。

注2:imshow()就是输出文件到屏幕,第一个参数为输出框的名字,第二个为待输出的图像。
注3:resize()函数是更改图片的大小,第一个参数是输入源数组,第二个是输出数组,第三个是更改大小的数值。resizet具体使用方法请点击我的另外一篇博客(点击这里)。
注4:这是输出图片到特定的路径下,注意第一个参数的路径也要在双引号里面。
注5:cvtColor()函数是图片类型转换函数,第三个参数CV_RGB2GRAY就是把RGB彩色数值转换为GRAY灰度黑白数值。
注6:waitkey()等待按键按下。参数为空和0均表示等待时间无限长,在等待时间内,有按键按下,退出显示。注意此处是对着HighGUI界面也就是imshow的显示界面才能起作用,对着命令框是不起作用的。

你可能感兴趣的:(图像opencv,c++)