使用OpenCV点击图像中的一个点来访问像素值

Access pixel values by clicking on a point in an image with OpenCV

本文关键字:一个 像素 访问 OpenCV 图像 使用      更新时间:2023-10-16

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

简单的谷歌给出了这个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 pressedn");
        break;
    case CV_EVENT_LBUTTONUP:
        printf("Left button upn");
        break;
    }
}

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

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

,其中"win1"应替换为您的窗口名称。有关cvSetMouseCallback的详细信息,请访问http://opencv.willowgarage.com/documentation/user_interface.html