2016-06-24 104 views
0

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

Labelling Image

我使用WindowResize功能尝试,但由于某些原因,它没有这样一个小尺寸的图像工作,我假设这是OpenCV中最小的窗口大小。

有没有人有任何想法如何使鼠标坐标实际上对应于图像本身的坐标而不是窗口,或如何使窗口大小完全对应于图像的大小非常小的图像( 96×96)?

回答

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