Tìm hiểu face_detect của OpenCV trong Python_Bài thực hành 5
TIL
718
Male avatar

aska viết ngày 15/08/2019

Sử dụng thư viện Face_Detect đi kèm trong OpenCV

Sau khi chạy thử một số bài hướng dẫn khác thì mình vướng 1 số lỗi, chủ yếu là do phiên bản mới của OpenCV nó thay đổi nên các đối số thay đổi.
Hôm nay mình tìm đọc đoạn code để có thể phát hiện gương mặt và trong gương mặt thì phát hiện mắt.
Mình chỉ mới cho chạy được. Và chỉnh sửa các thông số để có thể tìm ra gương mặt trong ảnh, còn xác định mắt thì mình chưa biết chỉnh sửa tham số cho phù hợp để nhận diện được.
Với những tấm ảnh có mắt rõ ràng thì xác định được ngay, còn các hình nhỏ hơn thì chỉ phát hiện được mặt.
Bạn nào đọc bài này và thử chạy được, nếu có thể hãy giúp mình cách chỉnh sửa sao cho phát hiện được mắt chính xác hơn nhé.

CODE:

import numpy as np
import cv2 as cv
face_cascade = cv.CascadeClassifier('haarcascade_frontalface_default.xml')
eye_cascade = cv.CascadeClassifier('haarcascade_eye.xml') #2 file này copy trong thư mục /sourse/data của OpeCV
img = cv.imread('anh4.jpg') #truyền địa chỉ ảnh cần xác định
gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY) #đổi ảnh sang thang màu xám
faces = face_cascade.detectMultiScale(gray, 1.2, 3) #chỗ số 3 là số phần tử lân cận, mình giảm xuống để xác định được các gương mặt nhỏ hơn
for (x,y,w,h) in faces:
cv.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2) #vẽ hình vuông khi thấy gương mặt, số 2 là độ dày nét vẽ
roi_gray = gray[y:y+h, x:x+w]
roi_color = img[y:y+h, x:x+w]
eyes = eye_cascade.detectMultiScale(roi_gray)
for (ex,ey,ew,eh) in eyes:
cv.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),1)
cv.imshow('img',img)
cv.waitKey(0)
cv.destroyAllWindows()

Mình chỉ mới tìm hiểu đến đây, mong bạn nào cùng đang tìm hiểu có thể trao đổi giúp mình hiểu vấn đề nhanh hơn.

aska 07-08-2019

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

Male avatar

aska

5 bài viết.
1 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
Male avatar
2 0
Bài thực hành theo hướng dẫn 1 Đây là bài mình làm theo các hướng dẫn để mở và xem các thông số của 1 bức ảnh. đây là code sau khi đã chỉnh sửa v...
aska viết 1 tháng trước
2 0
Male avatar
1 0
Khởi tạo mảng random bảng dữ liệu Để áp dụng thuật toán trước hết ta cần biết tạo mảng ngẫu nhiên để khởi tạo dữ liệu đầu vào (nếu không muốn nhập...
aska viết 1 tháng trước
1 0
Bài viết liên quan
White
0 4
fCC: Technical Documentation Page note So I have finished the HTML part of this exercise and I want to come here to lament about the lengthy HTML ...
HungHayHo viết 1 năm trước
0 4
White
2 0
I used Spring boot, Hibernate few times back then at University, I'v started using it again recently. In this (Link), I want to check how Spring J...
Rey viết 8 tháng trước
2 0
White
22 1
Toán tử XOR có tính chất: + A XOR A = 0 + 0 XOR A = A Với tính chất này, có thể cài đặt bài toán sau với độ phức tạp O(N) về runtime, và với O(1)...
kiennt viết gần 3 năm trước
22 1
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


Male avatar
{{userFollowed ? 'Following' : 'Follow'}}
5 bài viết.
1 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!