访问矩阵A的像素值

时间:2013-11-13 23:29:47

标签: opencv

如何在不知道通道深度的情况下获取OpenCV中像素的值?例如,在以下示例中,我必须事先知道矩阵a有三个通道。

Mat a;
Vec3b pixel=a.at<Vec3b>(0,0);

如何编写可读取1通道矩阵和3通道矩阵的函数?我打算在矩阵中保存特征向量,因此它也可以是任意常数。

1 个答案:

答案 0 :(得分:4)

查看at的文档。如果您想从3通道浮点图像中选择一个通道,您可以这样做:

float pixel = img.at<float>(i,j,k); //i - row, j - col, k - channel

您可以使用

检查频道数量
int nChannels = img.channels();