ユーザインタフェース

cv::createTrackbar

Comments from the Wiki

int createTrackbar(const string& trackbarname, const string& winname, int* value, int count, TrackbarCallback onChange CV_DEFAULT(0), void* userdata CV_DEFAULT(0))

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

パラメタ:
  • trackbarname – 作成されるトラックバーの名前.
  • winname – 作成されるトラックバーの親として用いられるウィンドウの名前.
  • value – オプション.整数型変数へのポインタ.この値はスライダの位置を反映します.作成時,作成時のスライダ位置は,この変数によって定義されます.
  • count – スライダの最大値.最小値は常に 0です.
  • onChange – スライダの位置が変更されるたびに呼び出される関数のポインタ.この関数のプロトタイプは, void Foo(int,void*); となり,最初の引数はトラックバーの位置,2番目引数はユーザデータ(次の引数説明を参照してください)を表します.このコールバックがNULLポインタの場合,コールバック関数は呼び出されませんが, value だけは更新されます.
  • userdata – コールバック関数に渡されることになるユーザデータ.グローバル変数に頼らずにトラックバーイベントを扱うために利用されます.

関数 createTrackbar は,指定された名前と範囲のトラックバー(スライダ,レンジコントロールとも呼ばれます)を作成します.また,トラックバーの位置と同期する変数 value を割り当て,トラックバーの位置が変更されたときに呼び出されるコールバック関数 onChange を指定します.作成されたトラックバーは,指定されたウィンドウの上部に表示されます.

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

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

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

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

cv::getTrackbarPos

Comments from the Wiki

int getTrackbarPos(const string& trackbarname, const string& winname)

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

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

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

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

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

cv::imshow

Comments from the Wiki

void imshow(const string& winname, const Mat& image)

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

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

関数 imshow は,指定したウィンドウ内に画像を表示します.そのウィンドウ作成時にフラグに CV_WINDOW_AUTOSIZE が指定されていた場合は,画像はオリジナルサイズで表示されます.それ以外の場合,ウィンドウサイズに合わせて 表示画像サイズが変更されます.この関数は,ビット深度に応じて,画像をスケーリングします:

  • 画像が8ビット符号なし整数の場合,そのま表示します.
  • 画像が16ビット符号なし整数,または32ビット整数の場合,ピクセル値は256で割られます.つまり,[0,255*256] の範囲が [0,255] にマップされます.
  • 画像が32ビット浮動小数点数の場合,ピクセルは255倍されます.つまり,[0,1] の範囲が [0,255] にマップされます.

cv::namedWindow

Comments from the Wiki

void namedWindow(const string& winname, int flags)

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

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

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

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

[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 演算子でこれらを組み合わせることができます.以下に例を示します:

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

cv::setTrackbarPos

Comments from the Wiki

void setTrackbarPos(const string& trackbarname, const string& winname, int pos)

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

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

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

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

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

cv::waitKey

Comments from the Wiki

int waitKey(int delay=0)

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

パラメタ:
  • delay – ミリ秒単位で表される遅延時間.0は,「無限」を意味する特別な値です.

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

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

注意 2: この関数は,HighGUI ウィンドウが少なくとも1つ存在し,それがアクティブな場合にのみ動作します.複数の HighGUI ウィンドウがある場合は,どれかがアクティブであれば構いません.

目次

このページ