python将图片转动漫_如何把照片变成手绘动漫化?

看了各位答主的回答,大都是利用 ps 或者是相应的 app 来实现动漫效果的。

其中的原理大同小异,大家看我这篇文章就足够了!

1.普通照片和动漫图片的区别

要想搞清楚怎么变成动漫化风格,首先就要明白动漫和普通照片的区别。主要的区别有三点:

(1)动漫中的细节相对少;

(2)动漫中的边缘轮廓更突出;

(3)动漫的色彩更鲜艳;

2. 如何转换

突出边缘线条

要想突出边缘,自然首先要找到边缘。有很多成熟的边缘检测算法,最常用的就是各种算子—— Sobel, Canny, Laplace 等等。利用这些算子进行边缘检测的本质就是将算子与图像进行空间二维卷积。具体的实现这里不再赘述,因为MATLAB中的edge函数可以很方便的实现边缘检测,用的就是这个原理。至于找到之后怎么突出?最简单的方法是从原图中减去边缘位置处的像素,这样边缘就变成了黑色,形成“描边”的效果。

弱化与去除细节

所谓“细节”,从图像处理的角度看来就是图像中的高频成分。要想去除高频成分,自然而然就要用到滤波(filtering)的方法。常用的滤波器有均值滤波器、高斯滤波器、中值滤波器等。但是,这些常用滤波器都有一个共同的问题——会弱化所有的高频信息。而很不幸的是,图像中的边缘也属于高频信息(因为边缘意味着图像在这里产生了突变,突变就意味着高频)。因此常用滤波器会将我们本应突出的边缘一起弱化模糊

这种情况下就要让双边滤波器(Bilateral filter)出场了。这种滤波器的特点是可以“保边滤波”(或者叫“区域平滑”,Region smoothing)。顾名思义,就是可以只模糊区域内部而保留清晰的边缘。为了搞明白双边滤波器为什么有这样的效果,首先来说一下高斯滤波器。高斯滤波器,或者说高斯滤波模板,其中的各个点的值仅与该点到模板中心点的空间距离有关,而并没有考虑各个点与中心点的相似度(即像素值的接近程度),这样就导致无论是变化不大的区域内部点,还是突变的边缘点,只要和中心的距离相同,那就同等对待。

而双边滤波器就是在高斯滤波器基础上加上了相似度权重,在高斯滤波模板的每个点上再乘以一个与中心点的相似度系数(即“相似度权重”),从而将边缘与内部区分处理。相似度权重计算方法和高斯滤波模板中各点值(可以称为“高斯权重”)的计算方法相同,只不过高斯权重是将该点到中心的距离代入高斯函数计算,而相似度权重是将该点与中心的像素相似度(比如该点像素值与中心像素值的欧氏距离,或者直接求二者的差值)代入高斯函数计算得到。

让图像色彩更鲜艳

所谓的色彩鲜艳,其实就是高饱和度。颜色的饱和度高,就显得鲜艳;饱和度低,就显得灰暗。所以,要让图像色彩更鲜艳,就要提高饱和度。

放张图片镇下楼:

以上内容节选自 csdn 博主whiteso 图片动漫化处理一文

对于技术流来说,完全可以用 python 的 PIL 、opencv 库来实现一下。

对于大部分手残党,譬如爱火冰阔乐的我可咋办勒

请身边大佬相助,之前认识的一个艺术院的妹纸,看到她的头像超级好看,明显是精心设计过的,于是乎,请她帮了个忙,把我的照片设计成了这个杨紫,好喜欢,给大家看下,个人照就不放了,怕丑哭大家。

想要专属定制头像的小仙女或者是小哥哥也可以留言评论或者私信我呀,最近比价忙,私信可能不能及时回复,但看到后一定会回复的哦!

你可能感兴趣的:(python将图片转动漫)