OpenCV入门(2)——基础

Mat基本图像容器:html

基本上讲 Mat 是一个类,由两个数据部分组成:矩阵头包含矩阵尺寸,存储方法,存储地址等信息)和一个指向存储全部像素值的矩阵根据所选存储方法的不一样矩阵能够是不一样的维数的指针算法

  • OpenCV函数中输出图像的内存分配是自动完成的(若是不特别指定的话)。
  • 使用OpenCV的C++接口时不须要考虑内存释放问题。
  • 赋值运算符和拷贝构造函数( ctor )只拷贝信息头。
  • 使用函数 clone() 或者 copyTo() 来拷贝一副图像的矩阵。

 

存储方法:函数

这里讲述如何存储像素值。须要指定颜色空间数据类型。颜色空间是指对一个给定的颜色,如何组合颜色元素以对其编码。最简单的颜色空间要属灰度级空间,只处理黑色和白色,对它们进行组合能够产生不一样程度的灰色。编码

“颜色空间”——红色、绿色和蓝色,有时为了表示透明颜色也会加入第四个元素 alpha (A)。spa

有不少的颜色系统,各有自身优点:scala

  • RGB是最多见的,这是由于人眼采用类似的工做机制,它也被显示设备所采用。
  • HSV和HLS把颜色分解成色调、饱和度和亮度/明度。这是描述颜色更天然的方式,好比能够经过抛弃最后一个元素,使算法对输入图像的光照条件不敏感。
  • YCrCb在JPEG图像格式中普遍使用。
  • CIE L*a*b*是一种在感知上均匀的颜色空间,它适合用来度量两个颜色之间的 距离 。

每一个组成元素都有其本身的定义域,取决于其数据类型。如何存储一个元素决定了咱们在其定义域上可以控制的精度。指针

 

显式地建立一个 Mat 对象

  • Mat() 构造函数htm

        Mat M(2,2, CV_8UC3, Scalar(0,0,255)); //行数,列数, Scalar 是个short型vector。指定这个可以使用指定的定制化值来初始化矩阵。 cout << "M = " << endl << " " << M << endl << endl; 
Demo image of the matrix output

 

整理自——对象

http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutorials/core/mat%20-%20the%20basic%20image%20container/mat%20-%20the%20basic%20image%20container.html#matthebasicimagecontainerblog

相关文章
相关标签/搜索