Python应用案例——基于OpenCV图像卡通化处理&图像识别算法实验

目录

一、使用OpenCV卡通化图像和艺术化图像

 1、读取图片、窗口显示

 2、卡通化处理 

 3、铅笔画风格处理 

 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_image1cartoon_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 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码骑士

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值