OpenCV Python:窗口大小和鼠标事件坐标

时间:2016-06-24 08:58:07

标签: python opencv

我尝试使用鼠标事件并存储光标浏览的坐标。问题是我的图像非常小,96x96像素,而OpenCV选择的窗口大小比我的图像宽。所以我的图像只占据了窗口的左侧。但是OpenCV识别的坐标对应于窗口大小,因此如果我将光标移动到窗口的中间,那么只有图像本身的坐标标记在中间。例如。在此图像中,光标位于窗口的中间而不是图像:

Labelling Image

我尝试使用WindowResize函数,但由于某种原因它不适用于如此小尺寸的图像,我假设这是OpenCV中最小的窗口大小。

是否有人知道如何使鼠标坐标实际上对应于图像本身而不是窗口中的坐标,或者如何使窗口大小与图像大小完全对应的图像非常小(96x96 )?

1 个答案:

答案 0 :(得分:1)

我认为可以通过扩大图片大小来完成。 这是一些python代码。

scaleFactor = 10 
rows, cols = img.shape[:2] 
img = cv2.resize(img, (scaleFactor*cols, scaleFactor*rows), interpolation=cv2.INTER_LINEAR)

然后获取鼠标位置并缩小。 (伪代码......)

px, py = getMouseClickPosition()
px /= scaleFactor
py /= scaleFactor