(1) 处理鼠标事件:
void mouseHandler(int event, int x, int y, int flags, void* param) { switch(event) { case CV_EVENT_LBUTTONDOWN: if(flags & CV_EVENT_FLAG_CTRLKEY) printf("Left button down with CTRL pressed\n"); break; case CV_EVENT_LBUTTONUP: printf("Left button up\n"); break; } }
(2) 处理键盘事件:
}
(3) 处理滑动条事件:
cvSetTrackbarPos("bar1", "win1", 25);
#include <stdio.h> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> using namespace cv; using namespace std; #define NAME "TrackerDemo" Mat img1; Mat img2; Mat dstImg; const int nMaxSlider = 100; int nAlphaSlider; double dAlphaVaule; double dBetaValue; void duan_TrackBar(int , void*) { dAlphaVaule = (double) nAlphaSlider / nMaxSlider; dBetaValue = 1.0 - dAlphaVaule; addWeighted(img1, dAlphaVaule, img2, dBetaValue, 0, dstImg); imshow(NAME, dstImg); } int main() { img1 = imread("11.jpg"); if (!img1.data) { printf("Read image 1 ERROR!\n"); } img2 = imread("22.jpg"); if (!img2.data) { printf("Read image 2 ERROR!\n"); } nAlphaSlider = 70; namedWindow(NAME,1); char TrackBarName[50]; sprintf(TrackBarName, "TouMingZhi %d ", nAlphaSlider); createTrackbar(TrackBarName, NAME, &nAlphaSlider, nMaxSlider, duan_TrackBar); duan_TrackBar(nAlphaSlider, 0); waitKey(0); return 0; }