2016-02-13 183 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];