ユーザインタフェース

cv::ConvertImage

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 で利用されます.

cv::CreateTrackbar

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

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

cv::DestroyAllWindows

void cvDestroyAllWindows(void)
全てのHighGUIウィンドウを破棄します.

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

cv::DestroyWindow

void cvDestroyWindow(const char* name)

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

Parameter:name – 破棄されるウィンドウの名前

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

cv::GetTrackbarPos

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

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

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

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

cv::GetWindowHandle

void* cvGetWindowHandle(const char* name)

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

Parameter:name – ウィンドウの名前

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

cv::GetWindowName

const char* cvGetWindowName(void* windowHandle)

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

Parameter:windowHandle – ウィンドウハンドル

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

cv::InitSystem

int cvInitSystem(int argc, char** argv)

HighGUIを初期化します.

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

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

cv::MoveWindow

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

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

パラメタ:
  • name – Name of the window to be moved.
  • x – New x coordinate of the top-left corner
  • y – New y coordinate of the top-left corner

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

cv::NamedWindow

int cvNamedWindow(const char* name, int flags)

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

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

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

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

cv::ResizeWindow

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

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

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

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

cv::SetMouseCallback

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 キーが押されている

cv::SetTrackbarPos

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

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

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

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

cv::ShowImage

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] にマッピングされます.

cv::WaitKey

int cvWaitKey(int delay=0)

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

Parameter:delay – ミリ秒単位で表される遅延時間

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

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