1.显示图片
(注意图片要和test.py放在一个文件下)
新建test1.py,代码如下:
import cv2
img = cv2.imread("1.png")
cv2.imshow("Image", img)
cv2.waitKey (0)
cv2.destroyAllWindows()
结果就是任务栏自动打开一个图片。
2.人脸检测
具体介绍看这个网址:https://blog.csdn.net/qq_34337272/article/details/80408233
注意:
1.图片和test2.py文件在一个文件夹下
2.还有个文件haarcascade_frontalface_default.xml,也要和test2.py放在一起。
新建test2.py文件,代码如下:
import cv2
filepath = "face.jpg" #(注意1)
img = cv2.imread(filepath) # 读取图片
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 转换灰色
# OpenCV人脸识别分类器
classifier = cv2.CascadeClassifier( "haarcascade_frontalface_default.xml" )#(注意2)
color = (0, 255, 0) # 定义绘制颜色
# 调用识别人脸
faceRects = classifier.detectMultiScale( gray, scaleFactor=1.2, minNeighbors=3, minSize=(32, 32))
if len(faceRects): # 大于0则检测到人脸
for faceRect in faceRects: # 单独框出每一张人脸
x, y, w, h = faceRect
# 框出人脸
cv2.rectangle(img, (x, y), (x + h, y + w), color, 2)
# 左眼
cv2.circle(img, (x + w // 4, y + h // 4 + 30), min(w // 8, h // 8), color)
#右眼
cv2.circle(img, (x + 3 * w // 4, y + h // 4 + 30), min(w // 8, h // 8), color)
#嘴巴
cv2.rectangle(img, (x + 3 * w // 8, y + 3 * h // 4), (x + 5 * w // 8, y + 7 * h // 8), color)
cv2.imshow("image", img) # 显示图像
cv2.waitKey(0)
cv2.destroyAllWindows()
结果:
任务栏自动打开一张图片,上面进行了画框,代表检测到了。
原图;
效果图: