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など大多数のものではフラグは無視されています。