OpenCV 4.5.3(日本語機械翻訳)
モジュール | 型定義 | 関数
High-level GUI

モジュール

Flags related creating and manipulating HighGUI windows and mouse events
OpenGL support
Qt New Functions

型定義

typedef void(* cv::MouseCallback) (int event, int x, int y, int flags, void *userdata)
マウスイベント用のコールバック関数です。cv::setMouseCallback [【詳解】(英語]
typedef void(* cv::TrackbarCallback) (int pos, void *userdata)
トラックバーのコールバック関数 seecv::createTrackbar [【詳解】(英語]
typedef void(* cv::OpenGlDrawCallback) (void *userdata)
フレームごとに呼び出されるように定義されたコールバック関数。参照cv::setOpenGlDrawCallback [【詳解】(英語]
typedef void(* cv::ButtonCallback) (int state, void *userdata)
ボタンの現在の状態によって作成されるボタンのコールバック関数cv::createButton [【詳解】(英語]

関数

CV_EXPORTS_W void cv::namedWindow (const String &winname, int flags=WINDOW_AUTOSIZE)
ウィンドウを作成します。[【詳解】(英語]
CV_EXPORTS_W void cv::destroyWindow (const String &winname)
指定されたウィンドウを破棄します。[【詳解】(英語]
CV_EXPORTS_W void cv::destroyAllWindows ()
HighGUIのすべてのウィンドウを破棄します。[【詳解】(英語]
CV_EXPORTS_W int cv::startWindowThread ()
CV_EXPORTS_W int cv::waitKeyEx (int delay=0)
と似ていますがwaitKeyと似ていますが、完全なキーコードを返します。[【詳解】(英語]
CV_EXPORTS_W int cv::waitKey (int delay=0)
押されたキーを待ちます。[【詳解】(英語]
CV_EXPORTS_W int cv::pollKey ()
押されたキーをポーリングします。[【詳解】(英語]
CV_EXPORTS_W void cv::imshow (const String &winname, InputArray mat)
指定されたウィンドウに画像を表示します。[【詳解】(英語]
CV_EXPORTS_W void cv::resizeWindow (const String &winname, int width, int height)
指定されたサイズにウィンドウをリサイズします[【詳解】(英語]
CV_EXPORTS_W void cv::resizeWindow (const String &winname, const cv::Size &size)
CV_EXPORTS_W void cv::moveWindow (const String &winname, int x, int y)
ウィンドウを指定した位置に移動します。[【詳解】(英語]
CV_EXPORTS_W void cv::setWindowProperty (const String &winname, int prop_id, double prop_value)
ウィンドウのパラメータを動的に変更します。[【詳解】(英語]
CV_EXPORTS_W void cv::setWindowTitle (const String &winname, const String &title)
ウィンドウタイトルの更新[【詳解】(英語]
CV_EXPORTS_W double cv::getWindowProperty (const String &winname, int prop_id)
ウィンドウのパラメータを提供します。[【詳解】(英語]
CV_EXPORTS_W Rect cv::getWindowImageRect (const String &winname)
ウィンドウ内の画像の矩形領域を指定します。[【詳解】(英語]
CV_EXPORTS void cv::setMouseCallback (const String &winname, MouseCallback onMouse, void *userdata=0)
指定されたウィンドウのマウスハンドラを設定する[【詳解】(英語]
CV_EXPORTS int cv::getMouseWheelDelta (int flags)
マウスホイールイベントを処理する際の、マウスホイールモーションデルタを取得します。cv::EVENT_MOUSEWHEELおよびcv::EVENT_MOUSEHWHEEL.[【詳解】(英語]
CV_EXPORTS_W Rect cv::selectROI (const String &windowName, InputArray img, bool showCrosshair=true, bool fromCenter=false)
画像上のROIを選択できるようにします。[【詳解】(英語]
CV_EXPORTS_W Rect cv::selectROI (InputArray img, bool showCrosshair=true, bool fromCenter=false)
CV_EXPORTS_W void cv::selectROIs (const String &windowName, InputArray img, CV_OUT std::vector< Rect > &boundingBoxes, bool showCrosshair=true, bool fromCenter=false)
ユーザは,与えられた画像上の複数のROIを選択することができます.[【詳解】(英語]
CV_EXPORTS int cv::createTrackbar (const String &trackbarname, const String &winname, int *value, int count, TrackbarCallback onChange=0, void *userdata=0)
トラックバーを作成し、指定されたウィンドウに取り付けます。[【詳解】(英語]
CV_EXPORTS_W int cv::getTrackbarPos (const String &trackbarname, const String &winname)
トラックバーの位置を返します。[【詳解】(英語]
CV_EXPORTS_W void cv::setTrackbarPos (const String &trackbarname, const String &winname, int pos)
トラックバーの位置を設定します。[【詳解】(英語]
CV_EXPORTS_W void cv::setTrackbarMax (const String &trackbarname, const String &winname, int maxval)
トラックバーの最大位置を設定します。[【詳解】(英語]
CV_EXPORTS_W void cv::setTrackbarMin (const String &trackbarname, const String &winname, int minval)
トラックバーの最小位置を設定します。[【詳解】(英語]

詳解

While OpenCV was designed for use in full-scale applications and can be used within functionally rich UI frameworks (such as Qt*, WinForms*, or Cocoa*) or without any UI at all, sometimes there it is required to try functionality quickly and visualize the results. This is what the HighGUI module has been designed for.

It provides easy interface to:

型定義詳解

ButtonCallback

typedef void(* cv::ButtonCallback) (int state, void *userdata)

ボタンの現在の状態によって作成されるボタンのコールバック関数cv::createButton

引数
state ボタンの現在の状態。プッシュボタンの場合は-1、チェック/ラジオボックスボタンの場合は0または1となります。
userdata オプションのパラメータです。

MouseCallback

typedef void(* cv::MouseCallback) (int event, int x, int y, int flags, void *userdata)

マウスイベント用のコールバック関数です。cv::setMouseCallback

引数
event の一つです。cv::MouseEventTypes定数を指定します。
x マウスイベントのx座標です。
y マウスイベントの y 座標。
flags の一つです。cv::MouseEventFlags定数を指定します。
userdata オプションのパラメータです。

OpenGlDrawCallback

typedef void(* cv::OpenGlDrawCallback) (void *userdata)

フレームごとに呼び出されるように定義されたコールバック関数。参照cv::setOpenGlDrawCallback

引数
userdata オプションのパラメータです。

TrackbarCallback

typedef void(* cv::TrackbarCallback) (int pos, void *userdata)

トラックバーのコールバック関数 seecv::createTrackbar

引数
pos 指定されたトラックバーの現在の位置。
userdata オプションのパラメータです。

関数詳解

createTrackbar()

CV_EXPORTS int cv::createTrackbar ( const String & trackbarname,
const String & winname,
int * value,
int count,
TrackbarCallback onChange = 0,
void * userdata = 0
)

トラックバーを作成し、指定されたウィンドウに取り付けます。

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

覚え書き

[Qtバックエンドのみ] winnameは、トラックバーをコントロール・パネルに取り付ける場合は、空にすることができます。

各トラックバーのラベルをクリックすると、トラックバーの値を手動で編集できます。

引数
trackbarname 作成されるトラックバーの名前です。
winname 作成されたトラックバーの親として使用されるウィンドウの名前です。
value スライダーの位置を反映した値を持つ整数変数へのポインタ(オプション)。作成時、スライダーの位置はこの変数で定義されます。
count スライダの最大位置です。最小位置は常に 0 です。
onChange スライダの位置が変わるたびに呼び出される関数へのポインタです。この関数は, void Foo(int,void*); のようにプロトタイプを作成し,第1パラメータをトラックバーの位置,第2パラメータをユーザデータ(次のパラメータを参照)とします.コールバックがNULLポインタの場合,コールバックは呼ばれず,値だけが更新されます.
userdata コールバックにそのまま渡されるユーザーデータ。グローバル変数を使わずにトラックバーのイベントを処理するのに使用できます。

destroyAllWindows()

CV_EXPORTS_W void cv::destroyAllWindows ( )

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

関数 destroyAllWindows は、開いているすべての HighGUI ウィンドウを破棄します。

destroyWindow()

CV_EXPORTS_W void cv::destroyWindow ( const String & winname )

指定されたウィンドウを破棄します。

関数 destroyWindow は、指定された名前のウィンドウを破棄します。

引数
winname 破壊されるウィンドウの名前です。

getMouseWheelDelta()

CV_EXPORTS int cv::getMouseWheelDelta ( int flags )

マウスホイールイベントを処理する際の、マウスホイールモーションデルタを取得します。cv::EVENT_MOUSEWHEELおよびcv::EVENT_MOUSEHWHEEL.

スクロールホイール付きの通常のマウスでは,deltaは120の倍数になります.値120はホイールの1ノッチ回転に相当し、アクションを起こすためのしきい値で、deltaごとに1つのアクションが発生します。自由に回転するホイールを持つ高精度のマウスでは、より小さな値が得られる場合もある。

についてはcv::EVENT_MOUSEWHEEL正の値は前方へのスクロール、負の値は後方へのスクロールを意味します。についてはcv::EVENT_MOUSEHWHEELについては、正負の値は、それぞれ右スクロールと左スクロールを意味します(利用可能な場合)。

覚え書き

マウスホイールのイベントは、現在、Windowsでのみサポートされています。

引数
flags マウスコールバックフラグのパラメータです。

getTrackbarPos()

CV_EXPORTS_W int cv::getTrackbarPos ( const String & trackbarname,
const String & winname
)

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

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

覚え書き

[Qtバックエンドのみ] winname は、トラックバーがコントロールパネルに取り付けられている場合、空にすることができます。

引数
trackbarname トラックバーの名前です。
winname トラックバーの親となるウィンドウの名前です。

getWindowImageRect()

CV_EXPORTS_W Rect cv::getWindowImageRect ( const String & winname )

ウィンドウ内の画像の矩形領域を指定します。

関数 getWindowImageRect は、画像描画領域のクライアント画面座標、幅、高さを返します。

引数
winname ウィンドウの名前を指定します。
参照
resizeWindow moveWindow

getWindowProperty()

CV_EXPORTS_W double cv::getWindowProperty ( const String & winname,
int prop_id
)

ウィンドウのパラメータを提供します。

関数 getWindowProperty は、ウィンドウのプロパティを返します。

引数
winname ウィンドウの名前を指定します。
prop_id 取得するウィンドウのプロパティです。以下の操作フラグがあります: (cv::WindowPropertyFlags)
参照
setWindowProperty

imshow()

CV_EXPORTS_W void cv::imshow ( const String & winname,
InputArray mat
)

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

関数 imshow は、指定されたウィンドウに画像を表示します。フラグを指定してウィンドウを作成した場合はcv::WINDOW_AUTOSIZEフラグを使用してウィンドウを作成した場合、画像は元のサイズで表示されますが、画面の解像度によって制限されます。そうでない場合は,ウィンドウに合わせて画像がスケーリングされます.この関数は,画像の深度に応じて画像をスケーリングします.

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

OpenGLをサポートしているウィンドウを作成した場合。cv::imshowもサポートしています。ogl::Buffer,ogl::Texture2Dおよびcuda::GpuMatを入力として指定します。

この関数を実行する前にウィンドウが作成されていない場合は、OpenGLサポートのウィンドウを作成したものとみなされます。cv::WINDOW_AUTOSIZE.

画面の解像度よりも大きな画像を表示する必要がある場合は、imshowの前にnamedWindow("", WINDOW_NORMAL)を呼び出す必要があります。

覚え書き
この関数の後にはcv::waitKeyまたはcv::pollKeyを呼び出して、与えられたイメージを実際に表示したり、マウスやキーボードのイベントにウィンドウが反応するようにするために必要なGUIハウスキーピングタスクを実行する必要があります。そうしないと、画像が表示されず、ウィンドウがロックしてしまうかもしれません。例えば、以下のようになります。waitKey(0)は、キーが押されるまで無限にウィンドウを表示します(画像表示に適しています)。waitKey(25)は、フレームを表示し、キーが押されるまで約25ms待ちます(ビデオをフレームごとに表示する場合に適しています)。ウィンドウを削除するにはcv::destroyWindow.

[Windows バックエンドのみ] Ctrl+Cを押すと、画像がクリップボードにコピーされます。

[Windows バックエンドのみ] Ctrl+Sを押すと、画像を保存するためのダイアログが表示されます。

引数
winname ウィンドウの名前を指定します。
mat 表示される画像

moveWindow()

CV_EXPORTS_W void cv::moveWindow ( const String & winname,
int x,
int y
)

ウィンドウを指定した位置に移動します。

引数
winname ウィンドウの名前を指定します。
x ウィンドウの新しい x 座標です。
y ウインドウの新しい Y 座標。

namedWindow()

CV_EXPORTS_W void cv::namedWindow ( const String & winname,
int flags = WINDOW_AUTOSIZE
)

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

namedWindow関数は、画像やトラックバーのプレースホルダーとして使用できるウィンドウを作成します。作成されたウィンドウは,その名前で参照されます.

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

この関数を呼び出すとcv::destroyWindowまたはcv::destroyAllWindowsを呼び出してウィンドウを閉じ,関連するメモリ使用量の割り当てを解除することができます.単純なプログラムの場合、アプリケーションのすべてのリソースとウィンドウは、終了時にオペレーティングシステムによって自動的に閉じられるので、これらの関数を呼び出す必要はありません。

覚え書き

Qtバックエンドでは、さらに次のフラグをサポートしています。

  • Qtバックエンドは、WINDOW_NORMALまたはWINDOW_AUTOSIZEという追加フラグをサポートしています。WINDOW_NORMALはウィンドウのサイズを変更できますが、WINDOW_AUTOSIZEは表示されている画像に合わせてウィンドウのサイズを自動的に調整し(imshow参照)、ウィンドウのサイズを手動で変更することはできません。
  • WINDOW_FREERATIO」または「WINDOW_KEEPRATIO」です。WINDOW_FREERATIO は画像の比率を無視して調整しますが、WINDOW_KEEPRATIO は画像の比率を維持します。
  • WINDOW_GUI_NORMALまたはWINDOW_GUI_EXPANDED。WINDOW_GUI_NORMAL は、ステータスバーやツールバーのない古いウィンドウの描画方法で、WINDOW_GUI_EXPANDED は、新しい拡張された GUI です。デフォルトでは、flags == WINDOW_AUTOSIZE | WINDOW_KEEPRATIO | WINDOW_GUI_EXPANDED です。
引数
winname ウィンドウの識別子として使用される可能性のある、ウィンドウキャプション内のウィンドウの名前。
flags ウィンドウのフラグ。サポートされているフラグは次のとおりです。(cv::WindowFlags)

pollKey()

CV_EXPORTS_W int cv::pollKey ( )

押されたキーをポーリングします。

関数 pollKey は、キーイベントを待つことなくポーリングします。押されたキーのコードを返し、最後に呼び出してからキーが押されなかった場合は-1を返します。キーが押されるまで待つには,関数waitKey.

覚え書き
関数waitKeyおよびpollKeyは、GUIイベントを取得して処理することができるHighGUIの唯一のメソッドであるため、イベント処理を行う環境でHighGUIを使用している場合を除き、通常のイベント処理のためにこれらのうちの1つを定期的に呼び出す必要があります。
この関数は、少なくとも1つのHighGUIウィンドウが作成されており、そのウィンドウがアクティブである場合にのみ動作します。複数のHighGUIウィンドウがある場合は、どのウィンドウがアクティブになっても構いません。

resizeWindow() [1/2]

CV_EXPORTS_W void cv::resizeWindow ( const String & winname,
const cv::Size & size
)

これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。

引数
winname ウィンドウの名前。
size 新しいウィンドウのサイズです。

resizeWindow() [2/2]

CV_EXPORTS_W void cv::resizeWindow ( const String & winname,
int width,
int height
)

指定されたサイズにウィンドウをリサイズします

覚え書き
  • 指定されたウィンドウサイズは、画像領域に対するものです。ツールバーはカウントされません。
  • フラグを使用せずに作成されたウィンドウのみサイズ変更できます。cv::WINDOW_AUTOSIZEフラグを使用して作成されたウィンドウのみサイズ変更が可能です。
引数
winname ウィンドウの名前。
width 新しいウィンドウの幅です。
height 新しいウィンドウの高さを指定します。

selectROI() [1/2]

CV_EXPORTS_W Rect cv::selectROI ( const String & windowName,
InputArray img,
bool showCrosshair = true,
bool fromCenter = false
)

画像上のROIを選択できるようにします。

この関数は,ウィンドウを作成し,ユーザがマウスを使ってROIを選択できるようにします.コントロール: usespaceまたはenterで選択を終了し、キーcで選択をキャンセルします(この関数は,ゼロの cv::Rect を返します).

引数
windowName 選択過程が表示されるウィンドウの名前.
img ROIを選択する画像.
showCrosshair true の場合,選択範囲の矩形の十字線が表示されます.
fromCenter true の場合,選択範囲の中心は,マウスの初期位置と一致します.逆の場合は、選択領域の角がマウスの初期位置と一致します。
戻り値
選択されたROI,または,選択がキャンセルされた場合は,空の矩形が表示されます.
覚え書き
この関数は,cv::setMouseCallback(windowName, ...)を用いて,指定されたウィンドウに対する独自のマウスコールバックを設定します.作業終了後は,使用されたウィンドウに対して空のコールバックがセットされます.

selectROI() [2/2]

CV_EXPORTS_W Rect cv::selectROI ( InputArray img,
bool showCrosshair = true,
bool fromCenter = false
)

これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。

selectROIs()

CV_EXPORTS_W void cv::selectROIs ( const String & windowName,
InputArray img,
CV_OUT std::vector< Rect > & boundingBoxes,
bool showCrosshair = true,
bool fromCenter = false
)

ユーザは,与えられた画像上の複数のROIを選択することができます.

この関数は,ウィンドウを作成し,ユーザがマウスを使って複数のROIを選択できるようにします.コントロール:以下を使用しますspaceまたはenterで現在の選択を終了し,新たな選択を開始します.escを使用して、複数の ROI 選択プロセスを終了します。

引数
windowName 選択過程が表示されるウィンドウの名前.
img ROIを選択する画像.
boundingBoxes selected ROIs.
showCrosshair true の場合,選択範囲の矩形の十字線が表示されます.
fromCenter true の場合,選択範囲の中心は,マウスの初期位置と一致します.逆の場合は、選択領域の角がマウスの初期位置と一致します。
覚え書き
この関数は,cv::setMouseCallback(windowName, ...)を用いて,指定されたウィンドウに対する独自のマウスコールバックを設定します.作業終了後は,使用されたウィンドウに対して空のコールバックがセットされます.

setMouseCallback()

CV_EXPORTS void cv::setMouseCallback ( const String & winname,
MouseCallback onMouse,
void * userdata = 0
)

指定されたウィンドウのマウスハンドラを設定する

引数
winname ウィンドウの名前を指定します。
onMouse マウスイベント用のコールバック関数.コールバックの指定と使用方法については,OpenCVのサンプルを参照してください.
userdata コールバックに渡されるオプションのパラメータ.

setTrackbarMax()

CV_EXPORTS_W void cv::setTrackbarMax ( const String & trackbarname,
const String & winname,
int maxval
)

トラックバーの最大位置を設定します。

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

覚え書き

[Qtバックエンドのみ] winname は、トラックバーがコントロールパネルに取り付けられている場合、空にすることができます。

引数
trackbarname トラックバーの名前です。
winname トラックバーの親となるウィンドウの名前です。
maxval 新しい最大位置です。

setTrackbarMin()

CV_EXPORTS_W void cv::setTrackbarMin ( const String & trackbarname,
const String & winname,
int minval
)

トラックバーの最小位置を設定します。

この関数は、指定されたウィンドウ内の指定されたトラックバーの最小位置を設定します。

覚え書き

[Qtバックエンドのみ] winname は、トラックバーがコントロールパネルに取り付けられている場合、空にすることができます。

引数
trackbarname トラックバーの名前です。
winname トラックバーの親となるウィンドウの名前です。
minval 新規の最小位置。

setTrackbarPos()

CV_EXPORTS_W void cv::setTrackbarPos ( const String & trackbarname,
const String & winname,
int pos
)

トラックバーの位置を設定します。

この関数は、指定されたウィンドウ内の指定されたトラックバーの位置を設定します。

覚え書き

[Qtバックエンドのみ] winname は、トラックバーがコントロールパネルに取り付けられている場合、空にすることができます。

引数
trackbarname トラックバーの名前です。
winname トラックバーの親となるウィンドウの名前です。
pos 新規の位置です。

setWindowProperty()

CV_EXPORTS_W void cv::setWindowProperty ( const String & winname,
int prop_id,
double prop_value
)

ウィンドウのパラメータを動的に変更します。

関数 setWindowProperty は、ウィンドウのプロパティの変更を可能にします。

引数
winname ウィンドウの名前を指定します。
prop_id 編集するウィンドウのプロパティです。サポートされている操作フラグは (cv::WindowPropertyFlags)
prop_value ウィンドウ プロパティの新しい値です。サポートされるフラグは (cv::WindowFlags)

setWindowTitle()

CV_EXPORTS_W void cv::setWindowTitle ( const String & winname,
const String & title
)

ウィンドウタイトルの更新

引数
winname ウィンドウの名前を指定します。
title 新しいタイトル。

waitKey()

CV_EXPORTS_W int cv::waitKey ( int delay = 0 )

押されたキーを待ちます。

関数waitKeyは、キーイベントを無期限に(when$\texttt{delay}\leq 0$)、または delay milliseconds が正の値の場合に待ちます。OSにはスレッドを切り替える際の最小時間があるため、この関数は正確にdelayミリ秒待つわけではなく、その時点でコンピュータ上で他に何が実行されているかにもよりますが、少なくともdelayミリ秒は待ちます。この関数は,押されたキーのコードを返し,指定された時間が経過する前にキーが押されなかった場合は-1を返します。キーが押されたかどうかをチェックするが、それを待たない場合はpollKey.

覚え書き
関数waitKeyおよびpollKeyは、GUIイベントを取得して処理することができるHighGUIの唯一のメソッドであるため、イベント処理を行う環境でHighGUIを使用している場合を除き、通常のイベント処理のためにこれらのうちの1つを定期的に呼び出す必要があります。
この関数は、少なくとも1つのHighGUIウィンドウが作成されており、そのウィンドウがアクティブである場合にのみ動作します。複数のHighGUIウィンドウがある場合は、どのウィンドウがアクティブになっても構いません。
引数
delay 遅延時間をミリ秒単位で指定します。0 は、「永遠」を意味する特別な値です。

waitKeyEx()

CV_EXPORTS_W int cv::waitKeyEx ( int delay = 0 )

と似ていますがwaitKeyと似ていますが、完全なキーコードを返します。

覚え書き

キーコードは実装によって異なり、使用するバックエンドに依存します。QT/GTK/Win32/その他