OpenCV reference
Mat是一個OpenCV裡可以存image矩陣的資料結構
包含了image矩陣的元素型態、長寬、data等資訊
Mat型態
Mat裡的元素型態
Mat type 分別對應的數字 (C代表channel,有幾個通道)
C1 | C2 | C3 | C4 | |
CV_8U | 0 | 8 | 16 | 24 |
CV_8S | 1 | 9 | 17 | 25 |
CV_16U | 2 | 10 | 18 | 26 |
CV_16S | 3 | 11 | 19 | 27 |
CV_32S | 4 | 12 | 20 | 28 |
CV_32F | 5 | 13 | 21 | 29 |
CV_64F | 6 | 14 | 22 | 30 |
要取得圖片的型態,可用 int Mat::type() 這個函數
Mat矩陣宣告與設值 code
宣告Mat方式
要對matrix給值
可用cv::Scalar()對整個matrix設值,Scalar()的參數數量對應mat的通道數目
NOTE
CASE1如果此時將blue將自己的值改掉,blue1也會跟著改變
CASE2如果將blue指向green,blue原本的matrix沒更動,blue1依然是藍色
可用Mat::zeros(), Mat::ones()對整個matrix塞0 or 1
如果要分別對matrix每個pixel設值,可以用Mat::at()
NOTE
Mat::at()使用之前需要matrix已有記憶體存在
如果只宣告Mat A;
A.at會出現Segmentation fault: 11
gray |
Mat複製 code
Mat有幾種複製方式,要小心是copy reference還是copy value
沒有留言:
張貼留言