我不知道在哪里可以找到这些信息.
我加载了.jpg并将其转换为灰度 cv::cvtColor(*input_image_grayscale, *input_image_grayscale, CV_BGR2GRAY);
然后我尝试引用一个像素,input_image_grayscale->at<float>(row, col)但得到一个断言错误.如何确定正确的数据类型(显然不是浮点数)来取消引用?谢谢
作为参考,我跑了input_image_grayscale->type(),得到0.
type 返回的值只是 OpenCV 使用预处理器定义声明的整数。您可以在 switch 语句中检查它,如下所示:
switch( matrixType )
{
case CV_8UC1:
.... check for other types
}
Run Code Online (Sandbox Code Playgroud)
该8U示例中的 , 指的是无符号字符,并C1指的是单通道图像。CV_8UC1 定义为0,因此这是您的 Mat 类型,您应该将unsigned char其用作参考类型。
您还可以使用函数 Mat::depth 返回单个矩阵元素的大小类型,因为您已经知道它是单通道图像,因为它是灰度图像。
| 归档时间: |
|
| 查看次数: |
3904 次 |
| 最近记录: |