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

相關文章
相關標籤/搜索