我是OpenCV的初学者,想在控制台中打印我通过点击定义的像素的特定值(RGB格式)。
经过一些搜索,我设法找到了我在图像上点击的坐标。
如果有人知道如何做到这一点,请修改我正在使用的代码:
void mouseEvent (int evt, int x, int y, int flags, void* param)
{
if (evt == CV_EVENT_LBUTTONDOWN)
{
printf("%d %dn",x ,y );
}
}
这就是我用来调用的函数:
cvSetMouseCallback("blah blah", mouseEvent, 0);
将图像放在一个名为Mat的框架中,然后:
namedWindow("test");
cvSetMouseCallback("test", mouseEvent, &frame);
char key = 0;
while ((int)key != 27) {
imshow("test", frame);
key = waitKey(1);
}
其中mouseEvent定义为:
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, %dn",
x, y,
(int)(*rgb).at<Vec3b>(y, x)[0],
(int)(*rgb).at<Vec3b>(y, x)[1],
(int)(*rgb).at<Vec3b>(y, x)[2]);
}
}