2016-06-24 103 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