通过使用OpenCV单击图像中的点来访问像素值

时间:2013-03-12 08:51:18

标签: c++ qt opencv

有没有办法点击打开的CV上显示图像的指定点,以便稍后在其值上打印?

1 个答案:

答案 0 :(得分:1)

简单的谷歌搜索给了这个http://www.cs.iit.edu/~agam/cs512/lect-notes/opencv-intro/ - 看看Input handling部分,它定义了如何制作鼠标输入处理程序回调,你将获得鼠标的坐标,你可以在图像矩阵上使用。应该解决问题。

来自上面的链接:

插入此功能定义:

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;
    }
}

在主循环或事件循环或任何初始化等的地方,

int mouseParam= CV_EVENT_FLAG_LBUTTON;
cvSetMouseCallback("win1",mouseHandler,&mouseParam);

其中“win1”应替换为窗口名称。有关cvSetMouseCallback的更多详细信息,请参阅http://opencv.willowgarage.com/documentation/user_interface.html