OpenCV 从鼠标回调函数返回值

标签 opencv

在 OpenCV 中,我想将像 Point(x,y) 这样的点位置返回到我在鼠标回调函数中单击图像的 main() 函数。除了设置全局变量之外还有什么办法吗?

我不想在 on_mouse() 函数中编写所有代码。

谢谢

最佳答案

要在那里扩展 Safirs 的想法,除了类之类的,你可以直接传递点本身:

void on_mouse( int e, int x, int y, int d, void *ptr )
{
    Point*p = (Point*)ptr;
    p->x = x;
    p->y = y;
}

Point p;
namedWindow("win");
setMouseCallback("win",on_mouse, (void*)(&p) );

// changed value of p will be accessible here 

关于OpenCV 从鼠标回调函数返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15570431/

相关文章:

c++ - 计算梯度方向

c++ - 在 OpenCV 中使用 H.264 压缩编写视频文件

c++ - 无法通过 cv::imshow() 显示窗口。我错过了什么?

c++ - OpenCV 无法获得 Mat 的正确最大值和最小值

opencv - 获取帧序列的平均值

opencv - `cv2.getRotationMatrix2D`返回的 map 矩阵

python - 将数组转换为图像

python - Opencv错误初始化完成

java - 如何在 Java 中优雅地序列化和反序列化 OpenCV YAML 校准数据?

python - BirdView 转换导致黑色图像