Search on the blog

2014年4月21日月曜日

OpenCV日記(7)ビット深度

 OpenCVで出てくるdepthの意味が分かっていなかったのでメモ。このdepthはbit-depthのことで、日本語だとビット深度と呼ばれる。1ピクセル内の1チャンネルの値を何ビットで表すかというのがビット深度である。

 OpenCVの場合は、CV_8UやCV_32Fなどの値を使ってビット深度を表す。ちなみにOpenCVで使えるビット深度は以下のとおり。

・CV_8U
・CV_8S
・CV_16U
・CV_16S
・CV_32S
・CV_32F
・CV_64F

数字はビット数を表す。Uはunsigned、Sはsigned、Fはfloating pointの意味。

以下のように、Mat#depthメソッドでビット深度を取得できる。
#include <iostream>
#include <cassert>

#include "opencv2/imgproc/imgproc.hpp"

using namespace cv;

int main() {
    Mat A(3, 3, CV_8U);
    Mat B(3, 3, CV_32F);
    Mat C(3, 3, CV_16UC4);
    Mat D(3, 3, CV_32SC(10));

    assert(A.depth() == CV_8U);
    assert(B.depth() == CV_32F);
    assert(C.depth() == CV_16U);
    assert(D.depth() == CV_32S);

    std::cout << "passed." << std::endl;

    return 0;
}

0 件のコメント:

コメントを投稿