0

画像をIpl形式で読み取ってから、マット形式に変換しています。次に、画像の行、列、チャネル、および深度の数を表示しようとします。最初の3つの結果は期待どおりですが、深さの結果は次のとおりです。

コード行:cout << "" << "Depth =" <

結果:深さ= 0

誰かがこれが何を意味するのか教えてもらえますか?

4

2 に答える 2

4

深さはフラグ(#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;

于 2013-03-15T12:18:11.720 に答える
0

ドキュメントはそれが何を意味するかを教えてくれます:

このメソッドは、マトリックス要素の深さの識別子(個々のチャネルのタイプ)を返します。たとえば、16ビットの符号付き3チャネル配列の場合、メソッドはCV_16Sを返します。

あなたはそれをチェックするべきです、それは非常に便利です。

于 2013-03-15T12:17:35.717 に答える