我可以在没有鼠标事件的情况下获得OpenCV中的鼠标位置吗?

iFr*_*cht 5 c++ mouse opencv callback

我发现的所有教程都setMouseCallback()用于设置将鼠标位置传递到的回调函数。不幸的是,仅当实际的鼠标事件发生时才调用此函数,但是我想在没有按下鼠标键的同时获取鼠标位置。

在OpenCV中有可能吗?

Mik*_*iki 5

您可以EVENT_MOUSEMOVE用来获取鼠标的位置:

#include <opencv2\opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;

void mouse_callback(int  event, int  x, int  y, int  flag, void *param)
{
    if (event == EVENT_MOUSEMOVE) {
        cout << "(" << x << ", " << y << ")" << endl;
    }
}

int main()
{
    cv::Mat3b img(200, 200, Vec3b(0, 255, 0));

    namedWindow("example");
    setMouseCallback("example", mouse_callback);

    imshow("example", img);
    waitKey();

    return 0;
}
Run Code Online (Sandbox Code Playgroud)