2015-02-04 2 views
1

у меня есть этот код, в котором я просто отобразить изображение с помощью OpenCV:OpenCV: обнаружить позицию мыши, нажав над картиной

import numpy as np 
    import cv2 

    class LoadImage: 
     def loadImage(self): 
      self.img=cv2.imread('photo.png') 
      cv2.imshow('Test',self.img) 

      self.pressedkey=cv2.waitKey(0) 

      # Wait for ESC key to exit 
      if self.pressedkey==27: 
       cv2.destroyAllWindows() 

    # Start of the main program here   
    if __name__=="__main__": 
     LI=LoadImage() 
     LI.loadImage() 

После того, как окно отображается witjh фотографии, я хочу, чтобы отобразить на Consol (терминал) положение мыши, когда я нажимаю на изображение. Я не знаю, как это сделать. Любая помощь, пожалуйста?

+0

вчера вы спросили [это] (http://stackoverflow.com/questions/28302818/opencv-function-arguments-useful-for-what) и теперь вам не знаете, как реализовать обработчик мыши? – berak

+0

@berak это не тот же вопрос, я новичок в python и opencv – user4519127

+1

просто идите туда снова, распечатайте все значения и посмотрите .. – berak

ответ

3

Вот функция обратного вызова пример мышь, которая захватывает левую кнопку двойной щелчок

def draw_circle(event,x,y,flags,param): 
    global mouseX,mouseY 
    if event == cv2.EVENT_LBUTTONDBLCLK: 
     cv2.circle(img,(x,y),100,(255,0,0),-1) 
     mouseX,mouseY = x,y 

Затем нужно связать эту функцию в окне, которое будет фиксировать мыши

img = np.zeros((512,512,3), np.uint8) 
cv2.namedWindow('image') 
cv2.setMouseCallback('image',draw_circle) 

затем в бесконечном цикле обработки (или все, что вы хотите)

while(1): 
    cv2.imshow('image',img) 
    k = cv2.waitKey(20) & 0xFF 
    if k == 27: 
     break 
    elif k == ord('a'): 
     print mouseX,mouseY 

Что делает этот код?

Он сохраняет позицию мыши в глобальных переменных mouseX & mouseY каждый раз, когда вы дважды щелкните внутри черного окна, который будет создан.

elif k == ord('a'): 
    print mouseX,mouseY 

будет печатать текущее место хранения щелчка мыши при каждом нажатии кнопки a.


код "Заимствованные" от here.

+0

большое спасибо за объяснение – user4519127

Смежные вопросы