[英]Extract face from image of face extracted ( resize face extracted )
我试图获得从图像中提取的面部的最小可能大小,我的意思是,我想最小化检测面部的绘制矩形的大小。 例如:
输入图像:
所需的 output:
源代码:
import numpy as np
import cv2
face_cascade =cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
img=cv2.imread('swaa.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.3,5,maxSize=(150,150))
for (x,y,w,h) in faces:
img = cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
roi_gray = gray[y:y+h, x:x+w]
roi_color = img[y:y+h, x:x+w]
cv2.imwrite("imgg1.png",roi_color)
cv2.imwrite("imggg1.png",roi_gray)
cv2.imshow('img',img)
cv2.imwrite("img1.png",img)
cv2.waitKey(0)
cv2.destroyAllWindows()
更新:使用发布的解决方案,结果如下所示:
只需使用 cv2.resize function。 https://www.tutorialkart.com/opencv/python/opencv-python-resize-image/
import numpy as np
import cv2
H = 64
W = 64
face_cascade =cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
img=cv2.imread('swaa.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.3,5,maxSize=(150,150))
for (x,y,w,h) in faces:
img = cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
roi_gray = cv2.resize(gray[y:y+h, x:x+w], (H, W))
roi_color = cv2.resize(img[y:y+h, x:x+w], (H,W))
cv2.imwrite("imgg1.png",roi_color)
cv2.imwrite("imggg1.png",roi_gray)
cv2.imshow('img',img)
cv2.imwrite("img1.png",img)
cv2.waitKey(0)
cv2.destroyAllWindows()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.