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