2016-02-13 181 views
3

我一直在閱讀有關openCV最近和它的cv::Mat數據結構。在文檔中,作者不斷提及多通道陣列和多通道矩陣。有人能給我一個這兩個的定義,什麼是「通道」?我試圖找到谷歌,但沒有發現類似的東西。多通道矩陣/陣列

+1

如果你有你有一個二維矩陣寬*高ELEMENTS。如果每個元素都是單個值,那麼您只有一個通道矩陣。如果每個元素具有多個值,則矩陣具有多個通道。單通道矩陣的示例是灰度圖像(每個像素1個強度值),例如多通道矩陣是RGB圖像(每個像素是3個值) – Micka

回答

2

最基本的例子是標準圖像。它有一個寬度(cols),一個高度(rows)和3個顏色通道。

Mat myImg = imread("color_picture.jpg"); 
Vec3b pixel = myImg.at<Vec3b>(y, x); 

在這種情況下,myImg將是一個CV_8UC3 - 8位無符號整數3頻道。

我更喜歡用模板類,因爲我覺得它更清楚:

Mat_<Vec3b> myImg = imread("color_picture.jpg"); 
// Or, Mat3b myImg = ... 
Vec3b pixel = myImg(y, x); 

然後,像素是藍色,綠色,紅色:

uchar blue = pixel[0];