2

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

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

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

4

1 回答 1

4

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

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

您可以使用检查通道数

int nChannels = img.channels();
于 2013-11-14T00:31:31.953 回答