我不确定在哪里可以找到这些信息。
我加载了.jpg并使用cv::cvtColor(*input_image_grayscale, *input_image_grayscale, CV_BGR2GRAY);
然后我尝试使用input_image_grayscale->at<float>(row, col)
引用一个像素,但得到一个断言错误。如何确定正确的数据类型(显然不是浮点数)来取消引用?感谢
作为参考,我跑了input_image_grayscale->type()
并获得了0。
答案 0 :(得分:4)
type返回的值只是OpenCV用预处理器定义声明的整数。你可以在这样的开关语句中检查它:
switch( matrixType )
{
case CV_8UC1:
.... check for other types
}
8U
,在该示例中引用无符号字符,C1
引用单个频道图像。 CV_8UC1定义为0
,因此这是您的Mat类型,您应该使用unsigned char
作为参考类型。
您还可以使用Mat :: depth函数来返回单个矩阵元素大小的类型,因为您已经知道它是单通道图像,因为它是灰度级的。