天天看點

詳解OpenCV的Mat類(構造方法、初始化方法、常用屬性、常用成員函數、常用操作)

詳解OpenCV的Mat類(構造方法、初始化方法、常用屬性、常用成員函數、常用操作)

OpenCV從2.x開始采用全新的基于C++的圖像資料結構來代替用C語言寫成的cvMat和IplImage資料結構,這使得開發效率大大提高。

Mat結構不需要我們為圖像資料的存儲手動開辟空間,也不需要手動釋放存儲空間,Mat類能夠自動管理記憶體。

Mat類使用了C++的智能指針概念,即儲存了資料被引用的次數,當資料被引用的次數為0時,會自動釋放相應的記憶體空間。

Mat類由矩陣頭和指向存儲所有像素值的矩陣的指針構成。

矩陣頭用來刻畫矩陣的尺寸、存儲方法、存儲位址及引用次數等資訊,矩陣頭的大小是一個常數,不會随圖像的大小變化而改變,但是儲存圖像像素資料的矩陣則會随圖像的大小變化而改變。在圖像的複制和傳遞過程中,記憶體主要的開銷是由存放圖像的像素矩陣引起的。

對于一個類的學習,主要需要掌握其常用的構造方法、初始化方法、常用屬性、常用成員函數、常用操作。

下面三篇博文詳細講述了Mat類常用的構造方法、初始化方法、常用屬性、常用成員函數、常用操作。

OpenCV_Mat類對象常用的構造方法及初始化方法

OpenCV_Mat類對象常用屬性值的擷取方法

OpenCV_Mat類對象的基本操作、常用操作及相關成員函數介紹