人臉位置定位滑鼠並實現眨眼點選

2021-09-24 01:21:23 字數 2378 閱讀 6681

環境:

python: 3.7

cv2: 4.1.0

pyautogui

受前幾天的hackfun第一名(鍵鼠替代方案)啟發,嘗試自己做乙個簡易版。由攝像頭檢測人臉位置,並由此定位滑鼠位置;檢測影象中的眼睛位置,然後眨眼(眼睛消失)實現滑鼠單擊。

總之,人臉來控制滑鼠,確實不太方便不能像手那樣隨心所欲,但這個是為特殊人群服務的替代方案,所以也還行吧。

實現方法是在上乙個部落格中所講的人臉識別的基礎上,新增識別眼睛的功能,引入pyautogui庫,來實現對滑鼠的控制。

**:

import cv2

import pyautogui

cap = cv2.videocapture(0)

while

(true):

# capture frame-by-frame

ret, frame = cap.read(

) frame = cv2.flip(frame,1)

print

(frame.shape)

# our operations on the frame come here

gray = cv2.cvtcolor(frame, cv2.color_bgr2gray)

# 下面這兩個分類器檔案替換成自己電腦上的。用everything搜尋一下。

xmlfile = r'c:\programdata\anaconda3\lib\site-packages\cv2\data\haarcascade_frontalface_default.xml'

xmlfile2 = r'c:\programdata\anaconda3\lib\site-packages\cv2\data\haarcascade_lefteye_2splits.xml'

face_cascade = cv2.cascadeclassifier(xmlfile)

eyes = cv2.cascadeclassifier(xmlfile2)

faces = face_cascade.detectmultiscale(

gray,

scalefactor=

1.15

, minneighbors=5,

minsize=(5

,5),

) eyes = eyes.detectmultiscale(

gray,

scalefactor=

1.15

, minneighbors=5,

minsize=(5

,5),

)print

("發現個目標!"

.format

(len

(faces)))

for(x, y, w, h)

in faces:

cv2.rectangle(frame,

(x, y)

,(x + w, y + w),(

0,255,0)

,2) xx =

max(0,

min(10*

(x -

100)

,1980))

yy =

max(0,

min(20*

(y -

100)

,1080))

pyautogui.moveto(10*

(x -

100),10

*(y -

100)

, duration=

0.01

)for

(x, y, w, h)

in eyes:

cv2.rectangle(frame,

(x, y)

,(x + w, y + w),(

0,255,0)

,2)print

(" 個眼睛!"

.format

(len

(eyes)))

iflen

(eyes)

<1:

pyautogui.click(

) cv2.imshow(

"frame"

, frame)

# display the resulting frame

if cv2.waitkey(1)

&0xff

==ord

('q'):

break

# when everything done, release the capture

cap.release(

)cv2.destroyallwindows(

)

監控滑鼠的位置點選實現圓形擴散動畫

首先看效果圖如下 一 要實現如下的效果我們先分析都要什麼?1 首先我們要先實現這個動畫擴散效果。2 然後當滑鼠點選該標籤時,你需要在他的下面新增乙個標籤並把這個動畫給這個新增標籤。3 其次我們要監控滑鼠的位置。4 在其次找到被點選的標籤的位置與滑鼠點選位置相減就是這個做動畫的標籤的初始位置。5 讓這...

C 實現讓滑鼠點選任意絕對位置

幫弟弟打遊戲 引入命名空間using system.runtime.interopservices 因為要使用user32.dll中的介面。建立乙個新類mouseflag 宣告函式 此處的位置都是螢幕絕對位置 設定滑鼠位置 public static extern int setcursorpos ...

Js Css實現滑鼠懸浮在特定位置,顯示提示資訊

想實現的效果就是資料懸浮在 上時出現乙個div,有乙個解釋說明,實現效果如下 1 首先實現 樣式,在 解壓後找到css資料夾下font awesome.min.css 在html頁面進行引用 link href static font css font awesome.min.css rel sty...