OpenCV 2.0 でのhighguiの新しい関数 不完全一覧

以前にcvについて新しく増えた関数の一覧を書きました。

http://d.hatena.ne.jp/Schima/20090911/1252661453

今回はhighguiについてもまとめておきます。新しく追加された関数や、引数が増えた関数を一覧にしてあります(C++ Interfaceは除く)。例によって正確性は保証しません。

cvCreateTrackbar2

トラックバーをウィンドウに追加する関数です。userdataが追加されました。

typedef void (CV_CDECL *CvTrackbarCallback2)(int pos, void* userdata);
CVAPI(int) cvCreateTrackbar2( const char* trackbar_name, const char* window_name,
                              int* value, int count, CvTrackbarCallback2 on_change,
                              void* userdata CV_DEFAULT(0));

cvSaveImage

CVAPI(int) cvSaveImage( const char* filename, const CvArr* image,
                        const int* params CV_DEFAULT(0) );

paramsが追加されました。これでJPEGやPNGなどのフォーマットにおける圧縮率といったパラメータを指定できるようになりました。例えば以下の例は、JPEGの品質を70に設定する例です。(取りうる値は0から100)

int params[] = {CV_IMWRITE_JPEG_QUALITY, 70, -1};
cvSaveImage("hoge.jpg", image, params);

paramsの末尾要素の番兵は、cvSaveImageのソースを見る限りなんとなく必要そうなので付けました。いらないかもしれません。

cvDecodeImage, cvDecodeImageM

画像をファイルからではなく、メモリ上のCvMatから読み込む関数です。フラグはcvLoadImageと同様のようです。

CVAPI(IplImage*) cvDecodeImage( const CvMat* buf, int iscolor CV_DEFAULT(CV_LOAD_IMAGE_COLOR));
CVAPI(CvMat*) cvDecodeImageM( const CvMat* buf, int iscolor CV_DEFAULT(CV_LOAD_IMAGE_COLOR));

cvRetrieveFrame

CvCaptureからキャプチャした画像を取り出します。streamIdx が追加されました。

CVAPI(IplImage*) cvRetrieveFrame( CvCapture* capture, int streamIdx CV_DEFAULT(0) );

といっても、ソースを見る限りではあまり対応しているデバイスが無いようです。調べた限りではDC1394のみ。DSHOWなど大多数のものではフラグは無視されています。