OpenCV Mat-基本图像容器
Mat-基本图像容器
目标
我们有多种从现实世界中获取数字图像的方法:数码相机,扫描仪,计算机断层扫描和磁共振成像等等。在每种情况下,我们(人类)看到的都是图像。但是,将其转换为数字设备时,我们记录的是图像每个点的数值。
例如,在上图中,您可以看到汽车的后视镜不过是一个包含所有像素点强度值的矩阵。我们如何获取和存储像素值可能会根据我们的需求而有所不同,但是最终,计算机世界中的所有图像都可能被简化为数值矩阵和描述矩阵本身的其他信息。OpenCV是一个计算机视觉库,其主要重点是处理和操纵此信息。因此,您需要熟悉的第一件事是OpenCV如何存储和处理图像。
Mat
penCV自2001年以来一直存在。那时,库是围绕C接口构建的,为了将图像存储在内存中,他们使用了称为IplImage的C结构。这是您在大多数较旧的教程和教学资料中都会看到的内容。问题在于,它将C语言的所有缺点都带到了桌子上。最大的问题是手动内存管理。它基于以下假设:用户负责处理内存分配和释放。尽管对于较小