目录
4、使用MTCNN(多任务级联卷积神经网络)和OpenCV库实现实时人脸识别和卡通化处理
一、使用OpenCV卡通化图像和艺术化图像
1、读取图片、窗口显示
import cv2
color_image = cv2.imread("images/panda.png")
cv2.imshow("panda",color_image)
cv2.waitKey()
cv2.destroyAllWindows()

2、卡通化处理
sigma_s 控制邻域的大小,而 sigma_r(对于 sigma_range)控制邻域内相似颜色的平均值。较大的 sigma_r 会导致常量颜色的大区域。
cartoon_image = cv2.stylization(color_image, sigma_s=100, sigma_r=0.8)
cv2.imshow('panda', cartoon_image)
cv2.waitKey()
cv2.destroyAllWindows()

3、铅笔画风格处理
cartoon_image1, cartoon_image2 = cv2.pencilSketch(color_image, sigma_s=60, sigma_r=0.5, shade_factor=0.02)
color_image:输入的彩色图像;sigma_s:控制线条粗细的参数,值越大线条越粗;sigma_r:控制线条锐度的参数,值越大线条越锐;shade_factor:控制阴影效果的参数,值越大阴影效果越明显。
函数返回两个值,分别是铅笔画风格处理后的图像cartoon_image1和cartoon_image2。
cv2.imshow('pencil' ,cartoon_image1)
cv2.waitKey()
cv2.destroyAllWindows()

cv2.imshow('pencil', cartoon_image2)
cv2.waitKey()
cv2.destroyAllWindows()

4、使用MTCNN(多任务级联卷积神经网络)和OpenCV库实现实时人脸识别和卡通化处理
首先导入所需的库,然后定义一个名为find_face_MTCNN的函数,该函数接收彩色图像和检测结果列表作为输入,对检测到的人脸进行矩形框标记并应用高斯模糊进行卡通化处理。接下来,创建一个VideoCapture对象来捕获摄像头的视频流,并实例化MTCNN检测器。在无限循环中,读取视频帧并使用MTCNN检测器检测人脸,然后将检测到的人脸传递给find_face_MTCNN函数进行卡通化处理。最后,将处理后的图像显示在窗口中,按下'q'键退出循环。
import cv2
from mtcnn import MTCNN
ksize = (125, 125)
font = cv2.FONT_HERSHEY_SIMPLEX
def find_face_MTCNN(color, result_list):
for result in result_list:
x, y, w, h = result['box']
roi = color[y:y+h, x:x+w]
cv2.rectangle(color,
(x, y), (x+w, y+h),
(0, 155, 255),
5)
detectedFace = cv2.GaussianBlur(roi, ksize, 1)
color[y:y+h, x:x+w] = detectedFace
return color
video_capture = cv2.VideoCapture(1, cv2.CAP_DSHOW)#VideoCapture(0)黑屏,VideoCapture(1)
detector = MTCNN()
while True:
_, color = video_capture.read()
faces = detector.detect_faces(color)
detectFaceMTCNN = find_face_MTCNN(color, faces)
cartoon_image = cv2.stylization(detectFaceMTCNN, sigma_s=10, sigma_r=0.1)
cv2.imshow('Video', cartoon_image)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
video_capture.release()
cv2.destroyAllWindows()
二、其他图像识别算法实现源码

源码分享:
链接:https://pan.baidu.com/s/1SkQAc9Wak1zuy4ELqegV_g
提取码:uue7
269

被折叠的 条评论
为什么被折叠?



