在OpenCV中确定图像的数据类型



我正在阅读Ipl格式的图像,然后将其转换为Mat形式。然后我尝试显示图像的行、列、通道和深度的数量。前三个的结果与预期的一样,但是深度的结果是:

代码行:cout<& lt;"& lt; & lt;"深度= " & lt;

结果:深度= 0

谁能告诉我这是什么意思?

depth是一个标志(#defined int in types_c.h),用于打印它,例如:

const char* depthToStr(int depth) {
  switch(depth){
    case CV_8U: return "unsigned char";
    case CV_8S: return "char";
    case CV_16U: return "unsigned short";
    case CV_16S: return "short";
    case CV_32S: return "int";
    case CV_32F: return "float";
    case CV_64F: return "double";
  }
  return "invalid type!";
}

和这样使用:cout << "depth = " << depthToStr(mat.depth()) << endl;

文档可以告诉您这是什么意思:

方法返回矩阵元素深度的标识符每个单独通道的类型)。例如,对于16位signed3通道数组,该方法返回CV_16S。

你应该看看,它很有用。

相关内容

  • 没有找到相关文章

最新更新