如何在不知道通道深度的情况下获取OpenCV中像素的值?例如,在以下示例中,我必须事先知道矩阵a有三个通道。
Mat a;
Vec3b pixel=a.at<Vec3b>(0,0);
如何编写可读取1通道矩阵和3通道矩阵的函数?我打算在矩阵中保存特征向量,因此它也可以是任意常数。
答案 0 :(得分:4)
查看at的文档。如果您想从3通道浮点图像中选择一个通道,您可以这样做:
float pixel = img.at<float>(i,j,k); //i - row, j - col, k - channel
您可以使用
检查频道数量int nChannels = img.channels();