且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

opencv设置鼠标回调

更新时间:2023-12-04 19:21:46

将图像放置在称为框架的Mat中,然后:

Place your image in a Mat called frame, then:

namedWindow("test");
cvSetMouseCallback("test", mouseEvent, &frame);

char key = 0;
while ((int)key != 27) {
    imshow("test", frame);
    key =  waitKey(1);
}

其中mouseEvent定义为:

where mouseEvent is defined as:

void mouseEvent(int evt, int x, int y, int flags, void* param) {                    
    Mat* rgb = (Mat*) param;
    if (evt == CV_EVENT_LBUTTONDOWN) { 
        printf("%d %d: %d, %d, %d\n", 
        x, y, 
        (int)(*rgb).at<Vec3b>(y, x)[0], 
        (int)(*rgb).at<Vec3b>(y, x)[1], 
        (int)(*rgb).at<Vec3b>(y, x)[2]); 
    }         
}