ユーザインタフェース

ConvertImage

Comments from the Wiki

void cvConvertImage(const CvArr* src, CvArr* dst, int flags=0)

画像を(必要ならば垂直方向に反転して)変換します.

パラメタ:
  • src – 入力画像.
  • dst – 出力画像. シングルチャンネル,あるいは3チャンネルの8ビット画像.
  • flags

    処理フラグ:

    • CV_CVTIMG_FLIP 画像を垂直方向に反転します.
    • CV_CVTIMG_SWAP_RB 赤と青のチャンネルを入れ替えます.OpenCV では,カラー画像のチャンネルは BGR の順番で並んでいますが,画像を表示する前にこの順番をを反転させる必要があるシステムもあります(関数 ShowImage はこれを自動的に行います).

関数 cvConvertImage は,画像の変換と必要に応じた垂直反転を行います.この関数は, ShowImage で利用されます.

CreateTrackbar

Comments from the Wiki

int cvCreateTrackbar(const char* trackbarName, const char* windowName, int* value, int count, CvTrackbarCallback onChange)

トラックバーを作成し,指定されたウィンドウに追加します.

パラメタ:
  • trackbarName – 作成されるトラックバーの名前.
  • windowName – 作成されるトラックバーの親として利用されるウィンドウの名前.
  • value – 整数値変数へのポインタ.その変数値はスライダ位置を反映します.また,作成時のスライダ位置は,この値によって決まります.
  • count – スライダ位置の最大値.最小値は常に0です.
  • onChange – スライダの位置が変更される度に呼び出される関数へのポインタ. この関数は, void Foo(int); という形式ですが,コールバック関数が不要な場合は NULL でも構いません.

関数 cvCreateTrackbar は,指定された名前と可動範囲をもつトラックバー(スライダ,レンジコントロールとも呼ばれます)を作成します.この関数の引数には,トラックバーの位置に同期する変数と,トラックバーの位置変化に応じて呼び出されるコールバック関数を指定します.作成されたトラックバーは,指定されたウィンドウの最上段に表示されます.

[Qt バックエンドのみ] Qt 固有機能の詳細:

  • windowName トラックバーの親として利用されるウィンドウの名前.トラックバーがコントロールパネル上に追加される場合は,NULL を指定できます.

windowName が正しく与えられた場合,作成されたトラックバーはウィンドウ の下部に表示されます.あるいは, windowName が NULL であれば,コントロールパネル上に表示されます.

トラックバーのラベルをクリックすると,トラックバーの値を直接編集することができます.

CV_EXTERN_C_FUNCPTR( void (*CvTrackbarCallback)(int pos) );

DestroyAllWindows

Comments from the Wiki

void cvDestroyAllWindows(void)

すべてのHighGUIウィンドウを破棄します.

関数 cvDestroyAllWindows は,オープンされているHighGUIウィンドウをすべて破棄します.

DestroyWindow

Comments from the Wiki

void cvDestroyWindow(const char* name)

ウィンドウを破棄します.

パラメタ:
  • name – 破棄されるウィンドウの名前.

関数 cvDestroyWindow は,指定された名前のウィンドウを破棄します.

GetTrackbarPos

Comments from the Wiki

int cvGetTrackbarPos(const char* trackbarName, const char* windowName)

トラックバーの位置を取得します.

パラメタ:
  • trackbarName – トラックバーの名前.
  • windowName – トラックバーの親ウィンドウの名前.

関数 cvGetTrackbarPos は,指定されたトラックバーの現在位置を返します.

[Qt バックエンドのみ] Qt 固有機能の詳細:

  • windowName トラックバーの親として利用されるウィンドウの名前.トラックバーがコントロールパネル上に追加される場合は,NULL を指定できます.

GetWindowHandle

Comments from the Wiki

void* cvGetWindowHandle(const char* name)

ウィンドウの名前からウィンドウハンドルを取得します.

パラメタ:
  • name – ウィンドウの名前.

関数 cvGetWindowHandle は,ネイティブなウィンドウハンドル(Win32の場合はHWND,GTK+の場合はGtkWidget)を返します.

[Qt バックエンドのみ] Qt 固有機能の詳細: 関数 cvGetWindowHandle は,Qt クラスの QWidget を継承した ネイティブなウィンドウハンドルを返します.

GetWindowName

Comments from the Wiki

const char* cvGetWindowName(void* windowHandle)

ウィンドウハンドルからウィンドウの名前を取得します.

パラメタ:
  • windowHandle – ウィンドウハンドル.

関数 cvGetWindowName は,引数で与えられたネイティブなウィンドウハンドル(Win32の場合はHWND,GTK+の場合はGtkWidget)が示すウィンドウの名前を返します.

[Qt バックエンドのみ] Qt 固有機能の詳細: 関数 cvGetWindowName は,ネイティブなウィンドウハンドル(QWidget)が与えられると,そのウィンドウの名前を返します.

InitSystem

Comments from the Wiki

int cvInitSystem(int argc, char** argv)

HighGUIを初期化します.

パラメタ:
  • argc – コマンドライン引数の数.
  • argv – コマンドライン引数の配列.

関数 cvInitSystem は,HighGUI を初期化します.最初のウィンドウを作成するよりも前に,ユーザによってこの関数が明示的に呼ばれなかった場合は, argc=0 , argv=NULL として,この関数が暗に呼ばれたことになります.Win32 環境では,これを明示的に呼び出す必要はありません.X Window 環境では,HighGUI ウィンドウやコントロールの見た目を変更するために,この引数を利用する可能性もあります.

[Qt バックエンドのみ] Qt 固有機能の詳細: 関数 cvInitSystem は,cvNamedWindow が最初に呼び出されたときに自動的に呼び出されます.

MoveWindow

Comments from the Wiki

void cvMoveWindow(const char* name, int x, int y)

ウィンドウの位置を変更します.

パラメタ:
  • name – 移動されるウィンドウの名前.
  • x – 左上コーナーの移動後の x-座標.
  • y – 左上コーナーの移動後の y-座標.

関数 cvMoveWindow は,ウィンドウの位置を変更します.

NamedWindow

Comments from the Wiki

int cvNamedWindow(const char* name, int flags)

ウィンドウを作成します.

パラメタ:
  • name – ウィンドウの識別に用いられるウィンドウ名で,ウィンドウのタイトルバーに表示されます.
  • flags – ウィンドウのフラグ.現在サポートされているフラグは CV_WINDOW_AUTOSIZE のみです.このフラグがセットされていると,表示される画像サイズに合わせてウィンドウサイズが自動的に調整されます( ShowImage を参照してください).その場合,ユーザが手動でウィンドウサイズを変更することはできません.

関数 cvNamedWindow は,画像とトラックバーのプレースホルダとして利用されるウィンドウを作成します.このウィンドウは,その名前によって参照されます.

同じ名前のウィンドウが既に存在する場合は,この関数は何もしません.

[Qt バックエンドのみ] Qt 固有機能の詳細:

  • flags ウィンドウのフラグ.現在サポートされるフラグは以下のとおりです:

    • CV_WINDOW_NORMAL or CV_WINDOW_AUTOSIZE: CV_WINDOW_NORMAL を指定すると,ユーザがウィンドウサイズを変更できるようになります.逆に CV_WINDOW_AUTOSIZE を指定すると,表示画像( ShowImage を参照してください)にフィットする様にウィンドウサイズが自動的に調整され,ユーザはウィンドウサイズを変更することができなくなります.
    • CV_WINDOW_FREERATIO or CV_WINDOW_KEEPRATIO: CV_WINDOW_FREERATIO を指定すると,アスペクト比を保たずに画像サイズが調整され,逆に CV_WINDOW_KEEPRATIO を指定すると,アスペクト比を保つように調整されます.
    • CV_GUI_NORMAL or CV_GUI_EXPANDED: CV_GUI_NORMAL を指定すると,ステータスバーとツールバーのない以前のウィンドウを表示することができます.逆に CV_GUI_EXPANDED を指定すると,機能強化された新しいGUIが表示されます.

    このパラメータはオプションです.新たにウィンドウを作成する場合のデフォルトのフラグは, CV_WINDOW_AUTOSIZE , CV_WINDOW_KEEPRATIO , CV_GUI_EXPANDED です.

    フラグを変更したい場合は, OR 演算子でこれらを組み合わせることができます.以下に例を示します:

    cvNamedWindow( "myWindow",  ``CV_WINDOW_NORMAL``  |  ``CV_GUI_NORMAL`` );

ResizeWindow

Comments from the Wiki

void cvResizeWindow(const char* name, int width, int height)

ウィンドウサイズを変更します.

パラメタ:
  • name – リサイズされるウィンドウの名前.
  • width – 新しい幅.
  • height – 新しい高さ.

関数 cvResizeWindow は,ウィンドウサイズを変更します.

SetMouseCallback

Comments from the Wiki

void cvSetMouseCallback(const char* windowName, CvMouseCallback onMouse, void* param=NULL)

マウスイベントに対してコールバックを割り当てます.

パラメタ:
  • windowName – ウィンドウの名前.
  • onMouse
    指定ウィンドウ内でマウスイベントが発生する度に呼び出される関数へのポインタ.この関数は
    void Foo(int event, int x, int y, int flags, void* param);

    という形式でなければいけません.ここで event は, CV_EVENT_* の内の1つで, xy は(ウィンドウ座標系ではなく)画像座標系におけるマウスポインタの座標, flagsCV_EVENT_FLAG_* の論理和です.また, param は, cvSetMouseCallback 関数呼び出しの際に渡されるユーザ定義パラメータです.

  • param – コールバック関数に渡される,ユーザ定義パラメータ.

関数 cvSetMouseCallback は,指定ウィンドウ内で発生するマウスイベントに対するコールバック関数を設定します.

event パラメータは,以下の内の1つです:

  • CV_EVENT_MOUSEMOVE マウスが移動した
  • CV_EVENT_LBUTTONDOWN 左ボタンが押された
  • CV_EVENT_RBUTTONDOWN 右ボタンが押された
  • CV_EVENT_MBUTTONDOWN 中ボタンが押された
  • CV_EVENT_LBUTTONUP 左ボタンが離された
  • CV_EVENT_RBUTTONUP 右ボタンが離された
  • CV_EVENT_MBUTTONUP 中ボタンが離された
  • CV_EVENT_LBUTTONDBLCLK 左ボタンがダブルクリックされた
  • CV_EVENT_RBUTTONDBLCLK 右ボタンがダブルクリックされた
  • CV_EVENT_MBUTTONDBLCLK 中ボタンがダブルクリックされた

flags パラメータは,以下の内の1つです:

  • CV_EVENT_FLAG_LBUTTON 左ボタンが押されている
  • CV_EVENT_FLAG_RBUTTON 右ボタンが押されている
  • CV_EVENT_FLAG_MBUTTON 中ボタンが押されている
  • CV_EVENT_FLAG_CTRLKEY Ctrl キーが押されている
  • CV_EVENT_FLAG_SHIFTKEY Shift キーが押されている
  • CV_EVENT_FLAG_ALTKEY Alt キーが押されている

SetTrackbarPos

Comments from the Wiki

void cvSetTrackbarPos(const char* trackbarName, const char* windowName, int pos)

トラックバーの位置をセットします.

パラメタ:
  • trackbarName – トラックバーの名前.
  • windowName – トラックバーの親ウィンドウの名前.
  • pos – トラックバーの新しい位置.

関数 cvSetTrackbarPos は,指定されたトラックバーの位置をセットします.

[Qt バックエンドのみ] Qt 固有機能の詳細:

  • windowName トラックバーの親ウィンドウの名前.トラックバーがコントロールパネル上に配置されている場合は,NULL を指定できます.

ShowImage

Comments from the Wiki

void cvShowImage(const char* name, const CvArr* image)

指定されたウィンドウ内に画像を表示します.

パラメタ:
  • name – ウィンドウの名前.
  • image – 表示される画像.

関数 cvShowImage は,指定されたウィンドウ内に画像を表示します.もし,ウィンドウ作成時にフラグ CV_WINDOW_AUTOSIZE が指定されていれば,画像は元来のサイズで表示されます.そうでなければ,ウィンドウサイズに合わせて表示画像サイズが変更されます.この関数は,画像のビット深度によっては,それを変更する可能性があります:

  • 符号なし8ビットである場合,そのまま表示されます.
  • 符号なし16ビット,あるいは32ビットの整数である場合,ピクセル値を256で割ります.つまり, [0,255*256] の範囲が [0,255] にマッピングされます.
  • 32ビット浮動小数点数である場合は,ピクセル値に255をかけます.つまり,[0,1] の範囲が [0,255] にマッピングされます.

WaitKey

Comments from the Wiki

int cvWaitKey(int delay=0)

キーが押されるまで待機します.

パラメタ:
  • delay – ミリ秒単位で表される遅延時間.

関数 cvWaitKey は,無限に( \texttt{delay} <= 0 ),あるいは delay ミリ秒だけキーイベントを待ちます.キーが押された場合はそのキーコードが,キーが押されないまま指定されたタイムアウト時間が過ぎてしまった場合は -1 が返されます.

注意: この関数は,HighGUI においてイベントを取得して扱うための唯一の手段です.よって,実行環境がイベント処理を扱ってくれる場合を除けば,通常のイベント処理ではこの関数を周期的に呼び出す必要があります.

[Qt バックエンドのみ] Qt 固有機能の詳細: 現在の Qt の実装では,これが,ウィンドウの再描画 ldots などのイベントを処理する唯一の方法です.