确定OpenCV中图像的数据类型

时间:2013-03-15 12:11:10

标签: c++ opencv

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

代码行:     cout<<“”<<“Depth =”<

结果:     深度= 0

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

2 个答案:

答案 0 :(得分:4)

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

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;

答案 1 :(得分:0)

documentation可以告诉你这意味着什么:

  

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

你应该检查一下,它非常有用。