سلام ساخت همچین چیزی نباید سخت باشه البته اگه خودت الگوریتم و طبقه بندی کننده (classifier) را ننوشته باشی =)
خب برای شروع باید یک کتابخانه را نصب کنیم :
pip install opencv-python
و بعد classifier را ادد میکنیم که به صورت پیش فرض خود کتابخانه opencv ایجاد کرده اگر شما نداشتید باید دانلودش کنید :)
از اینجا به کل پیش فرض ها دسترسی دارید و از این یکی برای تشخیص چهره
خب این خط هم اضافه میکنیم و یک مقدار بهش میدیم که من از face_cascade استفاده میکنیم:
cv2.CascadeClassifier = اضافه کردن طبقه بندی کننده
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
حالا تصویر که می خوایم اضافه میکنیم بخاطر اینکه بیشتر فایل ها jpg هستند پسوند jpg گذاشتم ولی شما از بقیه فرمت تصویری که پشتیبانی می شود می توانید استفاده کنید :
cv2.imread = خواندن تصویر
img = cv2.imread('pic.jpg')
و چون opencv نمی تواند از تصویر رنگی پشتیبانی کند پس فیلتر خاکستری روش میزاریم :)
cv2.cvtColor = تبدیل رنگ
COLOR_BGR2GRAY = تبدیل تصویر رنگی به خاکستری
img = تصویر که انتخاب کردیم
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
حالا چهره را پیدا میکنیم ( ما نه پایتون)
faces = face_cascade.detectMultiScale(gray)
خب بعد دور تصویر یک خط رنگی میکشیم چون من رنگ #00d0ff دوست دارم از این استفاده میکنیم :)
این خیلی آسونِ توضیح ندارد
البته RGB برعکس زده GRB شده
for (x, y, w, h) in faces:
result = cv2.rectangle(img, (x, y), (x + w, y + h), (255, 208, 0), 2)
خب کار تمومه ولی اگه بخواید عکس را ذخیره کنید باید از کد زیر استفاده کنید =)
cv2.imwrite = ذخیره تصویر
cv2.imwrite("اسم تصویر",result)
cv2.imwrite("result.jpg",result)
کلا کار دیگه تمومه ، لطفا نظرت بهم بگو اگه اشتباه داشتم هم بهم بگو حتی اگه املائی بود .
نه هنوز تمام نشده تصویر زیر رو ببین حتما :)