图片转素描
看到朋友圈有人用素描做头像,突然想着,代码如何实现图片转素描呢?
我们知道python中有个OpenCV的模块,在图片处理方面功能很强大,探索下里面的功能。
步骤
整理了下处理的步骤,将一张图片转换为素描,大致如下:
-
灰度化:首先,我们需要将彩色图片转换为灰度图片。这是因为彩色图片包含了红、绿、蓝三种颜色通道,而素描图片通常只有黑白两种颜色。灰度化的过程就是将彩色图片中的每个像素转换为灰度值,这个灰度值通常是通过计算像素的红、绿、蓝三个颜色通道的平均值得到的。
-
反色处理:然后,我们需要对灰度图片进行反色处理。反色处理的过程就是将每个像素的灰度值反转,即用最大的灰度值(通常是255)减去当前的灰度值。
-
高斯模糊:接下来,我们需要对反色图片进行高斯模糊。高斯模糊是一种常见的图像模糊技术,它可以将图片中的高频噪声滤掉,使图片看起来更加平滑。高斯模糊的过程就是将每个像素的灰度值替换为其邻域内的像素灰度值的加权平均。
-
融合:最后,我们需要将灰度图片和模糊后的反色图片进行融合。融合的过程就是将两个图片中的每个对应像素的灰度值进行特定的运算(如除法运算),得到最终的素描图片。
Python实现
import cv2
# 读取原始图片
img = cv2.imread('./resources/111.jpeg')
# 转换为灰度图片
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 反色处理