Qo'lni kuzatish bu kompyuterning kirish tasviridan qo'lni aniqlash va qo'l harakati va yo'nalishiga e'tibor berish uchun kompyuter ko'rish qobiliyatidan foydalanadigan jarayon


-bosqich - qo'l tasviriga qo'l belgilarini va qo'l ulanishlarini chizish


Download 69.57 Kb.
bet3/4
Sana20.11.2023
Hajmi69.57 Kb.
#1789150
1   2   3   4
Bog'liq
Machine learning-2-amaliy

4-bosqich - qo'l tasviriga qo'l belgilarini va qo'l ulanishlarini chizish

Yuqoridagi kodda biz qo'l nuqtasi raqamini aylantiramiz 20. Bu pushti barmoqning uchi.
O'zingiz aylantirmoqchi bo'lgan qo'l nuqtasi raqamidan foydalaning, chunki ular qo'l belgisi diagrammasida keltirilgan. Keyin kiritilgan rasmga qo'l belgilarini va ular orasidagi bog'lanishlarni chizamiz.

5-qadam - Chiqishni ko'rsatish



Biz yuqoridagi kodni foydalanuvchiga ko'rsatish uchun foydalanamiz. Chiqish foydalanuvchining real vaqtdagi videosidir. Unda foydalanuvchining qo'llari kuzatilgan, qo'l belgilari va qo'llarda chizilgan ulanishlar mavjud.
Natijalar
Dastur va modulning chiqishi bir xil bo'ladi. Ularning har biri xatosiz tugallanganda, natija quyida ko'rsatilgandek bo'ladi:

Xulosa
Endi siz qo'lni kuzatishni amalga oshiradigan dastur yaratish uchun zarur bo'lgan barcha ko'nikmalarni tushunasiz va egasiz. Shuningdek, siz kodni modulga aylantirish uchun zarur bo'lgan ko'nikmalarga egasiz.
Davom eting va modulni Pythonqo'lda kuzatishni talab qiladigan har qanday loyihaga import qiling va modul o'z sehrini bajarishini tomosha qiling.

Iloha dastur kodi
import cv2
import mediapipe as mp
from math import hypot
from ctypes import cast, POINTER
from comtypes import CLSCTX_ALL
from pycaw.pycaw import AudioUtilities, IAudioEndpointVolume
import numpy as np
cap = cv2.VideoCapture(0)
mpHands = mp.solutions.hands
hands = mpHands.Hands()
mpDraw = mp.solutions.drawing_utils
devices = AudioUtilities.GetSpeakers()
interface = devices.Activate(IAudioEndpointVolume._iid_, CLSCTX_ALL, None)
volume = cast(interface, POINTER(IAudioEndpointVolume))
volMin, volMax = volume.GetVolumeRange()[:2]
while True:
success, img = cap.read()
imgRGB = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
results = hands.process(imgRGB)
lmList = []
if results.multi_hand_landmarks:
for handlandmark in results.multi_hand_landmarks:
for id, lm in enumerate(handlandmark.landmark):
h, w, c = img.shape
cx, cy = int(lm.x * w), int(lm.y * h)
lmList.append([id, cx, cy])
mpDraw.draw_landmarks(img, handlandmark, mpHands.HAND_CONNECTIONS)
if lmList != []:
x1, y1 = lmList[4][1], lmList[4][2]
x2, y2 = lmList[8][1], lmList[8][2]
cv2.circle(img, (x1, y1), 15, (255, 0, 0), cv2.FILLED)
cv2.circle(img, (x2, y2), 15, (255, 0, 0), cv2.FILLED)
cv2.line(img, (x1, y1), (x2, y2), (255, 0, 0), 3)
length = hypot(x2 - x1, y2 - y1)
vol = np.interp(length, [15, 220], [volMin, volMax])
print(vol, length)
volume.SetMasterVolumeLevel(vol, None)
cv2.imshow('Image', img)
if cv2.waitKey(1) & 0xff == ord('q'):
break

Download 69.57 Kb.

Do'stlaringiz bilan baham:
1   2   3   4




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling