2017-09-07 33 views
1

OpenCV関数VideoCapture::getは、 "指定されたVideoCaptureプロパティ"を返します。フレームのフォーマットは、CV_CAP_PROP_FORMATというプロパティを使って求めることができます。OpenCVのVideoCapture :: get(CV_CAP_PROP_FORMAT)が返す数値はどういう意味ですか?

フレームはMatオブジェクトであり、ドキュメント(here)から "n次元の高密度数値シングルチャネルまたはマルチチャネル配列を表しますが、フォーマットの列挙型は含まれていません。

VideoCapture :: get(CV_CAP_PROP_FORMAT)によって返された数字のそれぞれの形式はどのように理解できますか?イメージフォーマットオプションにマップするにはどうすればいいですか?

+2

[コード](https://github.com/opencv/opencv/blob/d861c03366a0883b2a84ff4a2de06e523891373d/modules/videoio/src/cap_v4l.cpp#L1638)を見ると、それは 'Mat'データ型コードのようです - - 例えば'CV_8UC1'など(http://docs.opencv.org/3.1.0/db/de0/group__core__utils.html#ga9d2ee1a8334733dea7482a47a88e0f87) –

+1

また、https://github.com/opencv/opencv/blob/master/ modules/videoio/src/cap_gphoto2.cpp#L543 https://github.com/opencv/opencv/blob/master/modules/videoio/src/cap_mjpeg_decoder.cpp#L775 – zindarod

+0

@DanMašek、 'CV_8UC1 '' CV_32SC'と言って、私がRGB32のように理解していることに? – dumbledad

答えて

1

@DanMašekは上記のコメントはMatのデータ型コードです。 @Hammerが彼の答えhereにコメントしてさらにこれらsynomymsを説明

case CV_CAP_PROP_FORMAT: 
    return CV_MAKETYPE(CV_8U, capture->frame.nChannels); 

(これらの型シノニムhereため#defineで。)

:コードhereで、例えば、見ることができるようにCV_8UC1、 : "Uは符号なし、Sは符号付き、Fは浮動を意味し、数字は何ビットが含まれているかを示します。CV_16Sは16ビット符号付き整数を意味します"。さらに、「Cn」はチャネルの数を意味する。 RGBの場合はC3。

関連する問題