滑鼠事件不外乎就是「左右鍵按下、放開」、「滑鼠移動」,不過這些都是簡單卻很重要的工具,例如:我們可以
- 框出指定區域作物體追蹤。
- 框出指定區域作直方圖統計。
- 框出指定區域作影像擷取。
Set mouse callback function
- OpenCV b3.1
cvSetMouseCallback(const char* window_name, CvMouseCallback on_mouse);
- OpenCV 2.0
cvSetMouseCallback(const char* window_name, CvMouseCallback on_mouse, void* param CV_DEFAULT(NULL));
Mouse callback function prototype
- OpenCV b3.1
void MouseCallback(int event, int x, int y, int flags);
- OpenCV 2.0
void MouseCallback(int event, int x, int y, int flags, void *param);很明顯地,新版多了一個參數「void* param」,這樣一來,就可以傳入一個結構,來記錄滑鼠座標,毋須定義全域變數。另外,還有一個外表看不出來的差異,就是舊版(b3.1)取得的滑鼠座標需要上下顛倒,但新版不用,詳細可以看原始碼。
Source Code Download
2 則留言:
我用v1.1pre1a。大部分函式和v2.0比較像。
使用方式:
char *winName = "Show Image";
cvNamedWindow(winName, 1);
cvShowImage(winName, m_Frame);
CvRect region;
GetRegion(m_Frame, ®ion, winName);
...
張貼留言