目的:
cvSetMouseCallback 滑鼠動作
函數介紹:
cvInRangeS 找出特定的顏色,找到的話,就顯示為白色,不然為黑色。
參數值:
cvSetMouseCallback(“image”, mymouse);
void mymouse(int event, int x, int y, int flag, void* param)
使用範例:
sample13_Mouse_滑鼠動作
#include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/opencv.hpp> #include <iostream> #include <string.h> #include <fstream> using namespace cv; IplImage * image; void mymouse(int event, int x, int y, int flag, void* param) { static int mousedown=0; if(event==CV_EVENT_LBUTTONDOWN){ cvCircle(image, cvPoint(x,y), 8,cvScalar(0,0,255)); mousedown=1; } if(event==CV_EVENT_MOUSEMOVE && mousedown==1){ cvCircle(image, cvPoint(x,y), 2,cvScalar(0,255,0)); } if(event==CV_EVENT_LBUTTONUP){ cvCircle(image, cvPoint(x,y), 8,cvScalar(255,0,0)); mousedown=0; } cvShowImage("image", image); } int main(int argc,char **argv) { int width,height; if(argc<=1) { std::cout<<"Error:Please Load a picture!"<<std::endl; return 0; } //建立視窗 namedWindow("image",CV_WINDOW_AUTOSIZE); //讀取圖片 image=cvLoadImage(argv[1]); width=image->width; height=image->height; cvShowImage("image", image); cvSetMouseCallback("image", mymouse); waitKey(0); cvDestroyAllWindows(); return 0; }