我的代碼在下面。此代碼將顯示影像并單擊它會顯示位置。問題是我不明白函式如何知道 x , y 將回傳影像的位置
import cv2
img = cv2.imread("image/tree.jpg")
def clickPosition(event,x,y,flags,param):
if event == cv2.EVENT_LBUTTONDOWN:
text = str(x) "," str(y)
cv2.putText(img,text,(x,y),cv2.FONT_HERSHEY_SIMPLEX,1,(0,0,255),cv2.LINE_4)
cv2.imshow("Output",img)
#showimage
cv2.imshow("Output",img)
#workwithmouse Mouse
cv2.setMouseCallback("Output",clickPosition)
cv2.waitKey(0)
cv2.destroyAllWindows()
uj5u.com熱心網友回復:
它是如何setMouseCallback定義的。請參閱其檔案:
void cv::setMouseCallback ( const String & winname, MouseCallback onm ouse, void * userdata = 0 )
這適用于 C ,而不是 Python,但學習如何解釋它很有用,因為沒有全面的 Python 特定的 OpenCV 參考(據我所知)。
MouseCallback型別定義如下:
typedef void(* cv::MouseCallback) (int event, int x, int y, int flags, void *userdata)滑鼠事件的回呼函式。見
cv::setMouseCallback。引數
eventcv::MouseEventTypes 常量之一。
x滑鼠事件的 x 坐標。
y滑鼠事件的 y 坐標。
flagscv::MouseEventFlags 常量之一。
userdata可選引數。
所以這定義了呼叫滑鼠回呼時使用的簽名:第一個引數是event,然后是x,y然后是flags。最后一個引數userdata只是userdata傳遞給 的引數的副本setMouseCallback,您可以將其用于自己的目的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/519702.html
標籤:Pythonopencv
