原文链接:http://www.juzicode.com/python-funny-opencv-cartoon-profile-photo/
hello,大家好,我是桔子菌。
桔子菌前面发布了一些OpenCV方面的教程文章,稍显枯燥乏味了些,今天我们用OpenCV做个好玩的东东,看看怎么将普通的照片变成卡通化一些。
我们先来观察下卡通图像的特点,再根据卡通图像的特点从普通图像反推处理过程。

上图是一张典型的卡通人物头像,从图像可以看到人脸的轮廓非常分明,脸颊、下巴等和背景、头发区分明显,但是人脸内部则颜色比较均匀一致,转换成图像处理的行话就是边界明显、内部平滑。
所以拿到一张图像首先是要做边缘检测找到边界,然后就是平滑处理,最后将二者结合,下面介绍下具体的处理过程。
如果没有安装过OpenCV第三方库,先用pip命令进行安装:
pip install opencv-python
首先是一些预处理,从文件中获取图像,然后对图片做缩放,图像高度统一缩放到一定的高度值,宽度则做同比例缩放。
#读取图片
img_raw = cv2.imread(fn_raw)
#缩放图片
HEIGHT_MAX = 500
height,width,_ = img_raw.shape
ration

本文通过OpenCV实现将普通照片转化为卡通效果,主要步骤包括图像灰度化、边缘检测(Canny、Laplacian、Scharr、Sobel)、二值化、平滑处理和边缘凸显。通过双边滤波器多次处理得到平滑图像,再与边缘图像进行与操作,最终形成卡通效果。
最低0.47元/天 解锁文章
1108






