介紹
隨着計算機應用領域的不斷擴大,人機交互也變得越來越重要。而獲取鼠標位置是人機交互中常用的功能之一。本文將介紹如何使用Python獲取鼠標位置,並製作簡單實用的鼠標追蹤工具。
正文
一、使用PyAutoGUI庫獲取鼠標位置
為了獲取鼠標位置,我們可以使用Python提供的第三方庫PyAutoGUI。這個庫能夠方便地控制鼠標、鍵盤等設備,並且支持跨平台(Windows、Mac和Linux)。
import pyautogui
print(pyautogui.position())
這段代碼可以獲取當前鼠標的位置,並在屏幕上打印出來。如果需要不斷追蹤鼠標位置,可以使用循環語句。
二、使用OpenCV庫實現鼠標追蹤
如果需要實現鼠標追蹤的功能,可以使用OpenCV庫。它是一個專門用於計算機視覺的庫,常用於圖像處理和分析。
import cv2
import pyautogui
cap = cv2.VideoCapture(0)
while (1):
ret, frame = cap.read()
frame = cv2.flip(frame, 1)
hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
lower_blue = np.array([110,50,50])
upper_blue = np.array([130,255,255])
mask = cv2.inRange(hsv, lower_blue, upper_blue)
res = cv2.bitwise_and(frame,frame, mask= mask)
contours,hierarchy = cv2.findContours(mask, 1, 2)
if len(contours)>0:
M = cv2.moments(contours[0])
cx = int(M['m10']/M['m00'])
cy = int(M['m01']/M['m00'])
pyautogui.moveTo(cx,cy)
cv2.imshow('frame',frame)
cv2.imshow('mask',mask)
cv2.imshow('res',res)
k = cv2.waitKey(5) & 0xFF
if k == 27:
break
cv2.destroyAllWindows()
cap.release()
這段代碼可以打開攝像頭,將當前畫面轉化為HSV色彩空間,提取出藍色區域的掩模,通過查找輪廓獲取藍色區域中心的坐標,並將鼠標移動到該位置。同時,還可以在屏幕上顯示實時畫面、藍色區域的掩模以及提取出藍色區域的圖像。
三、製作簡單實用的鼠標追蹤工具
我們可以將上面的代碼封裝為一個鼠標追蹤工具,並添加一些簡單的交互功能。下面是一份示例代碼:
import cv2
import pyautogui
class MouseTracker:
def __init__(self):
self.cap = cv2.VideoCapture(0)
self.lower_blue = np.array([110,50,50])
self.upper_blue = np.array([130,255,255])
def run(self):
while (1):
ret, frame = self.cap.read()
frame = cv2.flip(frame, 1)
hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
mask = cv2.inRange(hsv, self.lower_blue, self.upper_blue)
contours,hierarchy = cv2.findContours(mask, 1, 2)
if len(contours)>0:
M = cv2.moments(contours[0])
cx = int(M['m10']/M['m00'])
cy = int(M['m01']/M['m00'])
pyautogui.moveTo(cx,cy)
cv2.imshow('frame',frame)
cv2.imshow('mask',mask)
k = cv2.waitKey(5) & 0xFF
if k == 27:
break
elif k == ord('b'):
self.start_tracking()
elif k == ord('q'):
self.stop_tracking()
cv2.destroyAllWindows()
self.cap.release()
def start_tracking(self):
self.lower_blue = np.array([110,50,50])
self.upper_blue = np.array([130,255,255])
def stop_tracking(self):
self.lower_blue = np.array([0,0,0])
self.upper_blue = np.array([0,0,0])
if __name__ == '__main__':
tracker = MouseTracker()
tracker.run()
這個工具可以通過“b”鍵開始追蹤鼠標,通過“q”鍵停止追蹤鼠標。在停止追蹤鼠標時,將閾值範圍設置為0,表示不再識別任何顏色。這樣,工具就可以靈活地應對不同的使用場景。
小結
通過上面的介紹,我們學習了如何使用Python獲取鼠標位置,並且製作了一個簡單實用的鼠標追蹤工具。當然,這只是冰山一角,Python在人機交互領域還有很多其他有趣的應用。
原創文章,作者:OQIU,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/149821.html