废话内容,写在前面:
Mat是个什么玩意?
2015年下半年我在深圳的时候,一边看C++的入门,一边敲一点点和工作有关的代码。有一天飞哥和勇哥终于按耐不住觉得我总是测试光学打光做电子元器件可能就真的要废了,便让我用Visual Studio把一张图片用窗口显示出来,然后对图片进行二值化处理,提取特征值。
我印象特别深刻,方法函数里面涉及到了好多Mat,如今开始动OpenCV第一个碰到的东西就是Mat,在这里把研读的关于Mat类,记录一下。
OpenCV官方文档是这样界定Mat的:基本的图像容器。
处理一张图片为何要用到图像的容器这种定义的概念?没有《图像处理技术》基础知识的人可能不太能懂图像为何需要一个基本的图像容器去处理。我本科学的《图像处理技术》的基础内容现在也不太记得,脑海中只有一些隐约的印象:图像是很多像素点构成,每个像素点有具体的像素值(0~255),一张二维平面上的图片,它上面所有的点平面坐标位置,有点像《线性代数》里的矩阵,处理一张图片就是处理图片上所包含的像素值的信息,所以图片的处理,就可以转换成矩阵运算。
正如OpenCV官方文档上说到的:如何获取并存储这些像素值由我们的需求而定,最终在计算机世界里所有图像都可以简化为数值矩以及矩阵信息。作为一个计算机视觉库, OpenCV 其主要目的就是通过处理和操作这些信息,来获取更高级的信息。因此,OpenCV如何存储并操作图像是你首先要学习的。
more >>