一、项目介绍
利用OpenCV,快速实现人脸模糊滤镜处理。效果如下:
二、实验
该项目非常简单,代码量也不超过30行,具体步骤如下:
(1)安装环境
pip install opencv-python
pip install cvzone==1.5.6
pip install mediapipe==0.8.3.1
(2)加载视频
import cv2
cap = cv2.VideoCapture(0)
# 设置视频宽、高
cap.set(3, 640)
cap.set(4, 480)
while True:
success, img = cap.read()
cv2.imshow("Images", img)
cv2.waitKey(1)
(3)捕捉人脸
import cv2
from cvzone.FaceDetectionModule import FaceDetector # 人脸检测模块
cap = cv2.VideoCapture(0)
# 设置视频宽、高
cap.set(3, 640)
cap.set(4, 480)
detector = FaceDetector(minDetectionCon=0.75) # 创建人脸检测器detector
while True:
success, img = cap.read()
img, bboxs = detector.findFaces(img, draw=True)
cv2.imshow("Images", img)
cv2.waitKey(1)
效果:
(4)裁剪人脸
import cv2
from cvzone.FaceDetectionModule import FaceDetector # 人脸检测模块
cap = cv2.VideoCapture(0)
# 设置视频宽、高
cap.set(3, 640)
cap.set(4, 480)
detector = FaceDetector(minDetectionCon=0.75) # 创建人脸检测器detector
while True:
success, img = cap.read()
img, bboxs = detector.findFaces(img, draw=True)
# bboxs包含人脸框的中心点(x,y)和宽高w、h等信息
if bboxs:
# 遍历
for i, bbox in enumerate(bboxs):
x, y, w, h = bbox['bbox']
imgCrop = img[y:y + h, x:x + w] # 裁剪人脸(即移动人脸框部分)
cv2.imshow(f'Image Cropped{i}', imgCrop)
cv2.imshow("Images", img)
cv2.waitKey(1)
效果:
(5)滤镜处理
主要运用到了'cv2.blur()'函数,该函数用于对图像进行均值模糊处理。其原理是,将图像中的每一个像素与其周围像素的平均值进行替换,来实现模糊效果。
import cv2
from cvzone.FaceDetectionModule import FaceDetector # 人脸检测模块
cap = cv2.VideoCapture(0)
# 设置视频宽、高
cap.set(3, 640)
cap.set(4, 480)
detector = FaceDetector(minDetectionCon=0.75) # 创建人脸检测器detector
while True:
success, img = cap.read()
img, bboxs = detector.findFaces(img, draw=True)
# bboxs包含人脸框的中心点(x,y)和宽高w、h等信息
if bboxs:
# 遍历
for i, bbox in enumerate(bboxs):
x, y, w, h = bbox['bbox']
# 防止人脸移动出摄像头范围
if x < 0: x = 0
if y < 0: y = 0
imgCrop = img[y:y + h, x:x + w] # 裁剪人脸(即移动人脸框部分)
# cv2.imshow(f'Image Cropped{i}', imgCrop)
imgBlur = cv2.blur(imgCrop, (35, 35)) # (35,35):核大小,表示模糊程度
img[y:y + h, x:x + w] = imgBlur # 人脸部分模糊替换
cv2.imshow("Images", img)
cv2.waitKey(1)
效果如下:
OpenCV人脸模糊滤镜处理
三、最后
希望我们一直在正确的道路上前行,慢点也没关系。以后,文章可能两周一更了。生活所迫,也为了充实自己,up周末找了份兼职。时光荏苒,岁月如梭,素什锦年,稍纵即逝,半载青春年华,似沙漏般,弹指间,流在昨天。