前言
OpenCV 提供了许多封装好了的类型,而其中,以三大类型最为核心。本文将大致介绍这三大类型。
CvArr:不确定数组
它可以被视为一个抽象基类,后面的两大类型都继承此类型并扩展。只要某个函数的形参是这个类型,那么我们就可以把后面两种类型作为实参传递进去做处理。
CvMat:多通道矩阵
它用来存放矩阵,OpeCV 提供了很多对此类型进行操作的函数,故使用此类型可以轻松玩转矩阵结构 :)。
IplImage:图像头
它用来存放图像,在之前的示例代码中,已经见到很多次了。由于对计算机而言,图像本身就是一种特殊的矩阵结构,因此,这个类型其实是继承上面的多通道矩阵类型的。这也意味着,如果要进行高速的矩阵运算,可以考虑将矩阵转换为图像类型,然后使用 GPU 高速处理图像,再将得到的输出图像格式转换回矩阵类型。