ユーザインタフェース ============================== .. highlight:: python .. index:: CreateTrackbar .. _CreateTrackbar: CreateTrackbar -------------- `id=0.150144419917 Comments from the Wiki `__ .. function:: CreateTrackbar(trackbarName, windowName, value, count, onChange) -> None トラックバーを作成し,指定されたウィンドウに追加します. :param trackbarName: 作成されるトラックバーの名前. :type trackbarName: str :param windowName: 作成されるトラックバーの親として利用されるウィンドウの名前. :type windowName: str :param value: スライダ位置の初期値.0から ``count`` までの値. :type value: int :param count: スライダ位置の最大値.最小値は常に0です. :type count: int :param onChange: OpenCV は,スライダの位置が変更される度に ``onChange`` を呼び出します. OpenCV は,これを ``func(x)`` として呼び出し,この ``x`` はスライダの新しい位置を表します. :type onChange: :class:`PyCallableObject` 関数 ``cvCreateTrackbar`` は,指定された名前と可動範囲をもつトラックバー(スライダ,レンジコントロールとも呼ばれます)を作成します.この関数の引数には,トラックバーの位置に同期する変数と,トラックバーの位置変化に応じて呼び出されるコールバック関数を指定します.作成されたトラックバーは,指定されたウィンドウの最上段に表示されます. **[Qt バックエンドのみ]** Qt 固有機能の詳細: * **windowName** トラックバーの親として利用されるウィンドウの名前.トラックバーがコントロールパネル上に追加される場合は,NULL を指定できます. *windowName* が正しく与えられた場合,作成されたトラックバーはウィンドウ の下部に表示されます.あるいは, *windowName* が NULL であれば,コントロールパネル上に表示されます. トラックバーのラベルをクリックすると,トラックバーの値を直接編集することができます. .. index:: DestroyAllWindows .. _DestroyAllWindows: DestroyAllWindows ----------------- `id=0.0655236876363 Comments from the Wiki `__ .. function:: DestroyAllWindows()-> None すべてのHighGUIウィンドウを破棄します. 関数 ``cvDestroyAllWindows`` は,オープンされているHighGUIウィンドウをすべて破棄します. .. index:: DestroyWindow .. _DestroyWindow: DestroyWindow ------------- `id=0.51014002097 Comments from the Wiki `__ .. function:: DestroyWindow(name)-> None ウィンドウを破棄します. :param name: 破棄されるウィンドウの名前. :type name: str 関数 ``cvDestroyWindow`` は,指定された名前のウィンドウを破棄します. .. index:: GetTrackbarPos .. _GetTrackbarPos: GetTrackbarPos -------------- `id=0.857703940494 Comments from the Wiki `__ .. function:: GetTrackbarPos(trackbarName,windowName)-> None トラックバーの位置を取得します. :param trackbarName: トラックバーの名前. :type trackbarName: str :param windowName: トラックバーの親ウィンドウの名前. :type windowName: str 関数 ``cvGetTrackbarPos`` は,指定されたトラックバーの現在位置を返します. **[Qt バックエンドのみ]** Qt 固有機能の詳細: * **windowName** トラックバーの親として利用されるウィンドウの名前.トラックバーがコントロールパネル上に追加される場合は,NULL を指定できます. .. index:: MoveWindow .. _MoveWindow: MoveWindow ---------- `id=0.747177239265 Comments from the Wiki `__ .. function:: MoveWindow(name,x,y)-> None ウィンドウの位置を変更します. :param name: 移動されるウィンドウの名前. :type name: str :param x: 左上コーナーの移動後の x-座標. :type x: int :param y: 左上コーナーの移動後の y-座標. :type y: int 関数 ``cvMoveWindow`` は,ウィンドウの位置を変更します. .. index:: NamedWindow .. _NamedWindow: NamedWindow ----------- `id=0.359350394054 Comments from the Wiki `__ .. function:: NamedWindow(name,flags=CV_WINDOW_AUTOSIZE)-> None ウィンドウを作成します. :param name: ウィンドウの識別に用いられるウィンドウ名で,ウィンドウのタイトルバーに表示されます. :type name: str :param flags: ウィンドウのフラグ.現在サポートされているフラグは ``CV_WINDOW_AUTOSIZE`` のみです.このフラグがセットされていると,表示される画像サイズに合わせてウィンドウサイズが自動的に調整されます( :ref:`ShowImage` を参照してください).その場合,ユーザが手動でウィンドウサイズを変更することはできません. :type flags: int 関数 ``cvNamedWindow`` は,画像とトラックバーのプレースホルダとして利用されるウィンドウを作成します.このウィンドウは,その名前によって参照されます. 同じ名前のウィンドウが既に存在する場合は,この関数は何もしません. **[Qt バックエンドのみ]** Qt 固有機能の詳細: * **flags** ウィンドウのフラグ.現在サポートされるフラグは以下のとおりです: * **CV_WINDOW_NORMAL or CV_WINDOW_AUTOSIZE:** ``CV_WINDOW_NORMAL`` を指定すると,ユーザがウィンドウサイズを変更できるようになります.逆に ``CV_WINDOW_AUTOSIZE`` を指定すると,表示画像( :ref:`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 演算子でこれらを組み合わせることができます.以下に例を示します: .. code-block:: python cvNamedWindow( "myWindow", ``CV_WINDOW_NORMAL`` | ``CV_GUI_NORMAL`` ); .. .. index:: ResizeWindow .. _ResizeWindow: ResizeWindow ------------ `id=0.546293026327 Comments from the Wiki `__ .. function:: ResizeWindow(name,width,height)-> None ウィンドウサイズを変更します. :param name: リサイズされるウィンドウの名前. :type name: str :param width: 新しい幅. :type width: int :param height: 新しい高さ. :type height: int 関数 ``cvResizeWindow`` は,ウィンドウサイズを変更します. .. index:: SetMouseCallback .. _SetMouseCallback: SetMouseCallback ---------------- `id=0.252808778592 Comments from the Wiki `__ .. function:: SetMouseCallback(windowName, onMouse, param) -> None マウスイベントに対してコールバックを割り当てます. :param windowName: ウィンドウの名前. :type windowName: str :param onMouse: 指定ウィンドウ内でマウスイベントが発生する度に呼び出される呼び出し可能オブジェクト.これは `` Foo(event, x, y, flags, param)-> None `` という形式でなければいけません. ここで ``event`` は, ``CV_EVENT_*`` の内の1つで, ``x`` と ``y`` は(ウィンドウ座標系ではなく)画像座標系におけるマウスポインタの座標, ``flags`` は ``CV_EVENT_FLAG_*`` の論理和です.また, ``param`` は, ``cvSetMouseCallback`` 関数呼び出しの際に渡されるユーザ定義パラメータです. :type onMouse: :class:`PyCallableObject` :param param: コールバック関数に渡される,ユーザ定義パラメータ. :type param: object 関数 ``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 キーが押されている .. index:: SetTrackbarPos .. _SetTrackbarPos: SetTrackbarPos -------------- `id=0.22145635315 Comments from the Wiki `__ .. function:: SetTrackbarPos(trackbarName,windowName,pos)-> None トラックバーの位置をセットします. :param trackbarName: トラックバーの名前. :type trackbarName: str :param windowName: トラックバーの親ウィンドウの名前. :type windowName: str :param pos: トラックバーの新しい位置. :type pos: int 関数 ``cvSetTrackbarPos`` は,指定されたトラックバーの位置をセットします. **[Qt バックエンドのみ]** Qt 固有機能の詳細: * **windowName** トラックバーの親ウィンドウの名前.トラックバーがコントロールパネル上に配置されている場合は,NULL を指定できます. .. index:: ShowImage .. _ShowImage: ShowImage --------- `id=0.11234608118 Comments from the Wiki `__ .. function:: ShowImage(name,image)-> None 指定されたウィンドウ内に画像を表示します. :param name: ウィンドウの名前. :type name: str :param image: 表示される画像. :type image: :class:`CvArr` 関数 ``cvShowImage`` は,指定されたウィンドウ内に画像を表示します.もし,ウィンドウ作成時にフラグ ``CV_WINDOW_AUTOSIZE`` が指定されていれば,画像は元来のサイズで表示されます.そうでなければ,ウィンドウサイズに合わせて表示画像サイズが変更されます.この関数は,画像のビット深度によっては,それを変更する可能性があります: * 符号なし8ビットである場合,そのまま表示されます. * 符号なし16ビット,あるいは32ビットの整数である場合,ピクセル値を256で割ります.つまり, [0,255*256] の範囲が [0,255] にマッピングされます. * 32ビット浮動小数点数である場合は,ピクセル値に255をかけます.つまり,[0,1] の範囲が [0,255] にマッピングされます. .. index:: WaitKey .. _WaitKey: WaitKey ------- `id=0.767473050327 Comments from the Wiki `__ .. function:: WaitKey(delay=0)-> int キーが押されるまで待機します. :param delay: ミリ秒単位で表される遅延時間. :type delay: int 関数 ``cvWaitKey`` は,無限に( :math:`\texttt{delay} <= 0` ),あるいは ``delay`` ミリ秒だけキーイベントを待ちます.キーが押された場合はそのキーコードが,キーが押されないまま指定されたタイムアウト時間が過ぎてしまった場合は -1 が返されます. **注意:** この関数は,HighGUI においてイベントを取得して扱うための唯一の手段です.よって,実行環境がイベント処理を扱ってくれる場合を除けば,通常のイベント処理ではこの関数を周期的に呼び出す必要があります. **[Qt バックエンドのみ]** Qt 固有機能の詳細: 現在の Qt の実装では,これが,ウィンドウの再描画 ldots などのイベントを処理する唯一の方法です.