import cv2 as cv
#读取图片
img = cv.imread('C:/Users/wangyiyuan/Desktop/20200201172603_hocyy.jpg')
#显示图片
cv.imshow('showFace',img)
gray_img = cv.cvtColor(img, cv.COLOR_BGRA2GRAY)
# 显示灰度
cv.imshow("greyImg", gray_img)
# 保存灰度图片
cv.imwrite('gray_face1.png', gray_img)
# 等待
cv.waitKey(0)
x,y,w,h = 100,100,100,100
cv.rectangle(img,pt1=(x,y),pt2=(x+w,y+h),color=(0,0,255),thickness=1)
#绘制圆形
cv.circle(img,center=(x,y),radius=100,color=(255,0,0),thickness=2)
cv.imshow("draw_face1", img)
while True:
if ord('m') == cv.waitKey(0):
break
def face_detect_methed():
# 图片灰度化
grey_img = cv.cvtColor(img, cv.COLOR_BGRA2GRAY)
# 定义分类器,使用OpenCV自带的分类器
face_detector = cv.CascadeClassifier(
'C:/Users/wangyiyuan/PycharmProjects/pythonProject/venv/Lib/site-packages/cv2/data/haarcascade_frontalface_alt2.xml')
# 使用分类器
face = face_detector.detectMultiScale(grey_img,1.1,5,0,(10,10),(200,200))
# 在图片中对人脸画矩阵
for x, y, w, h in face:
cv.rectangle(img, (x, y), (x + w, y + h), color=(0, 0, 255), thickness=2)
cv.imshow('result', img)
# 读取图像
img = cv.imread("C:/Users/wangyiyuan/Desktop/20240129230147.jpg")
# 调用检测函数
face_detect_methed()
cv.imwrite('result.jpg', img)
while True:
if ord('m') == cv.waitKey(0):
break
结果图: