在計算機(jī)看來俏站,圖像是一堆亮度各異的點(diǎn)穴张。一副尺寸為M * N 的圖像,可以用一個M * N 的矩陣來表示,矩陣元素的值表示這個位置上的像素亮度搔耕,一般來說像素值越大表示該點(diǎn)越亮。
一般來說粥惧,灰度圖用 2 維矩陣表示匕积,彩色(多通道)圖像用 3 維矩陣(M * N * 3)表示。目前大部分設(shè)備使用無符號的 8 位整數(shù)(類型為CV_8U)表示像素亮度
OpenCV中扮念,RGB圖像通道順序為BGR损搬,順序剛好和平時的RGB相反
Mat類是一個非常優(yōu)秀的圖像類,它同時也是一個通用的矩陣類柜与,可以創(chuàng)建和操作多維矩陣巧勤。
//創(chuàng)建一個3行2列類型為CV_8UC2的圖像
Mat mat = new Mat(3,2,CvType.CV_8UC2,new Scalar(0,0,255))
- Mat的很多構(gòu)造函數(shù)中涉及到類型type,type類型可以是CV_8UC1弄匕、CV_8UC2颅悉、CV_8UC3、CV_16SC1迁匠、CV_64FC4 等等剩瓶;里面的8U表示8位無符號整數(shù)驹溃,16S表示16位有符號整數(shù),64F表示64位浮點(diǎn)數(shù)(double類型)延曙;C后面表示通道數(shù)豌鹤,例:C1表示一個通道,C4表示四個通道枝缔,以此類推布疙。如果需要更多通道數(shù),需要使用宏CV_8UC(n)愿卸。
Mat mat = new Mat(3,2,CV_8UC(5));//創(chuàng)建行數(shù)為3灵临,列數(shù)為2,通道為5的圖像
- 有些type中沒有注明通道數(shù)趴荸,如CV_32F儒溉,這種情況下它表示單通道