マウスイベント
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
OpenCVでマウスを扱う
#contents
*void cvSetMouseCallback( char* window_name, CvMouseCallb...
ウィンドウにコールバック関数を設定する
**引数 [#zfa0a73f]
-window_name:char*型のウィンドウの名前
-on_mouse:CvMouseCallback型の関数のポインタ
-param:オプションのパラメータ
**返り値 [#l5960c1a]
-void型なのでなし
*void setMouseCallback( string& windowName, MouseCallback...
-C++インタフェース版
-char*からstring&に変わってるが,char*でもOK
*void func(int event, int x, int y, int flags, void *para...
マウスのコールバック関数の実体
**引数 [#n95841a5]
-event:int型のイベント
-x:int型のクリックされたx座標
-y:int型のクリックされたy座標
-flags:int型の同時に起きたイベント
-paramCallback:ダミー変数
**返り値 [#s768374e]
-void型なのでなし
*解説 [#s3a8c126]
-window_nameでウィンドウを指定.指定されたウィンドウにだ...
-on_mouseやonMouseでは関数のポインタを渡す
-CvMouseCallback型とは void func(int event, int x, int y,...
-cv::MouseCallback も void func(int event, int x, int y, ...
-paramとfuncの最後のパラメータparamCallbackは同じ型である...
-paramがfuncにparamCallbackとして渡されるので,それにより...
-eventには起きたイベントの種類
-flagsにはイベントが起きたときの状態フラグがbit和で渡される
*サンプルコード [#e108e4df]
#include <stdio.h>
#include <cv.h>
#include <highgui.h>
// マウスのコールバック関数
void onMouse(int event, int x, int y, int flags, void* p...
// 入力画像
IplImage *image;
int main(int argc, char** argv){
char inputkey;
// 画像の読み込み
image = cvLoadImage(argv[1], -1);
// ウィンドウの生成
cvNamedWindow("Input Image", CV_WINDOW_AUTOSIZE);
// マウスコールバック関数の設定
cvSetMouseCallback("Input Image", onMouse, "Input Image...
// 読み込み画像表示
cvShowImage("Input Image", image);
// ループ
while(inputkey = cvWaitKey(1), inputkey != 27 && inputk...
}
// コールバック関数
void onMouse(int event, int x, int y, int flags, void* p...
// eventに起きたイベントの種類が格納される
// flagsに共起したイベントが含まれている
if(event == CV_EVENT_LBUTTONDOWN && !strcmp(param, "Inp...
printf("x:%03d y:%03d\n", x, y);
}
}
*備考 [#e04a58f0]
**イベントの種類 [#j00d522b]
-CV_EVENT_MOUSEMOVE (0):マウスカーソルが動いた
-CV_EVENT_LBUTTONDOWN (1):左ボタンが押された
-CV_EVENT_RBUTTONDOWN (2):右ボタンが押された
-CV_EVENT_MBUTTONDOWN (3):中央ボタンが押された
-CV_EVENT_LBUTTONUP (4):左ボタンが離された
-CV_EVENT_RBUTTONUP (5):右ボタンが離された
-CV_EVENT_MBUTTONUP (6):中央ボタンが離された
-CV_EVENT_LBUTTONDBLCLK (7):左ボタンがダブルクリックされた
-CV_EVENT_RBUTTONDBLCLK (8):右ボタンがダブルクリックされた
-CV_EVENT_MBUTTONDBLCLK (9):中央ボタンがダブルクリックさ...
**フラグの種類 [#y0f14801]
-CV_EVENT_FLAG_LBUTTON (1):マウス左ボタンが押されているか
-CV_EVENT_FLAG_RBUTTON (2):マウス右ボタンが押されているか
-CV_EVENT_FLAG_MBUTTON (4):マウス中央ボタンが押されているか
-CV_EVENT_FLAG_CTRLKEY (8):CTRLボタンが押されているか
-CV_EVENT_FLAG_SHIFTKEY (16):Shiftボタンが押されているか
-CV_EVENT_FLAG_ALTKEY (32):Altボタンが押されているか
*実体ファイル [#s7815985]
-OpenCV1.1以前の場合
--TBW
-OpenCV2.2
--modules/highgui/include/opencv2/highgui/highgui.hpp
--modules/highgui/src/window.cpp
ジャンル[[:OpenCV]][[:OpenCV 1.0]]準拠
終了行:
OpenCVでマウスを扱う
#contents
*void cvSetMouseCallback( char* window_name, CvMouseCallb...
ウィンドウにコールバック関数を設定する
**引数 [#zfa0a73f]
-window_name:char*型のウィンドウの名前
-on_mouse:CvMouseCallback型の関数のポインタ
-param:オプションのパラメータ
**返り値 [#l5960c1a]
-void型なのでなし
*void setMouseCallback( string& windowName, MouseCallback...
-C++インタフェース版
-char*からstring&に変わってるが,char*でもOK
*void func(int event, int x, int y, int flags, void *para...
マウスのコールバック関数の実体
**引数 [#n95841a5]
-event:int型のイベント
-x:int型のクリックされたx座標
-y:int型のクリックされたy座標
-flags:int型の同時に起きたイベント
-paramCallback:ダミー変数
**返り値 [#s768374e]
-void型なのでなし
*解説 [#s3a8c126]
-window_nameでウィンドウを指定.指定されたウィンドウにだ...
-on_mouseやonMouseでは関数のポインタを渡す
-CvMouseCallback型とは void func(int event, int x, int y,...
-cv::MouseCallback も void func(int event, int x, int y, ...
-paramとfuncの最後のパラメータparamCallbackは同じ型である...
-paramがfuncにparamCallbackとして渡されるので,それにより...
-eventには起きたイベントの種類
-flagsにはイベントが起きたときの状態フラグがbit和で渡される
*サンプルコード [#e108e4df]
#include <stdio.h>
#include <cv.h>
#include <highgui.h>
// マウスのコールバック関数
void onMouse(int event, int x, int y, int flags, void* p...
// 入力画像
IplImage *image;
int main(int argc, char** argv){
char inputkey;
// 画像の読み込み
image = cvLoadImage(argv[1], -1);
// ウィンドウの生成
cvNamedWindow("Input Image", CV_WINDOW_AUTOSIZE);
// マウスコールバック関数の設定
cvSetMouseCallback("Input Image", onMouse, "Input Image...
// 読み込み画像表示
cvShowImage("Input Image", image);
// ループ
while(inputkey = cvWaitKey(1), inputkey != 27 && inputk...
}
// コールバック関数
void onMouse(int event, int x, int y, int flags, void* p...
// eventに起きたイベントの種類が格納される
// flagsに共起したイベントが含まれている
if(event == CV_EVENT_LBUTTONDOWN && !strcmp(param, "Inp...
printf("x:%03d y:%03d\n", x, y);
}
}
*備考 [#e04a58f0]
**イベントの種類 [#j00d522b]
-CV_EVENT_MOUSEMOVE (0):マウスカーソルが動いた
-CV_EVENT_LBUTTONDOWN (1):左ボタンが押された
-CV_EVENT_RBUTTONDOWN (2):右ボタンが押された
-CV_EVENT_MBUTTONDOWN (3):中央ボタンが押された
-CV_EVENT_LBUTTONUP (4):左ボタンが離された
-CV_EVENT_RBUTTONUP (5):右ボタンが離された
-CV_EVENT_MBUTTONUP (6):中央ボタンが離された
-CV_EVENT_LBUTTONDBLCLK (7):左ボタンがダブルクリックされた
-CV_EVENT_RBUTTONDBLCLK (8):右ボタンがダブルクリックされた
-CV_EVENT_MBUTTONDBLCLK (9):中央ボタンがダブルクリックさ...
**フラグの種類 [#y0f14801]
-CV_EVENT_FLAG_LBUTTON (1):マウス左ボタンが押されているか
-CV_EVENT_FLAG_RBUTTON (2):マウス右ボタンが押されているか
-CV_EVENT_FLAG_MBUTTON (4):マウス中央ボタンが押されているか
-CV_EVENT_FLAG_CTRLKEY (8):CTRLボタンが押されているか
-CV_EVENT_FLAG_SHIFTKEY (16):Shiftボタンが押されているか
-CV_EVENT_FLAG_ALTKEY (32):Altボタンが押されているか
*実体ファイル [#s7815985]
-OpenCV1.1以前の場合
--TBW
-OpenCV2.2
--modules/highgui/include/opencv2/highgui/highgui.hpp
--modules/highgui/src/window.cpp
ジャンル[[:OpenCV]][[:OpenCV 1.0]]準拠
ページ名: