大数跨境
0
0

python生成素描图(温碧霞)

python生成素描图(温碧霞) 橙子好甜
2024-07-31
2
导读:“港星一代人的记忆!”“在这个数字化时代,人们对于照片的需求越来越多样化,不再满足于普通的彩色照片。

“港星一代人的记忆!”

在这个数字化时代,人们对于照片的需求越来越多样化,不再满足于普通的彩色照片。相比于传统的彩色照片,黑白素描照片更具有艺术感和情感表达的效果。本文将向您展示如何使用Python编写一个简单的图像处理代码,将彩色照片转换为黑白素描效果。


原理

首先将图像转化为灰度图,然后使用高斯滤镜效果,后通过按位取反、图像除法等操作,将图像变成了一幅素描画。

模块安装

pip install opencv-python

代码

import cv2
def make_sketch(before_path, after_path): # 加载图片 img_rgb = cv2.imread(before_path) # 转为灰度图 img_gray = cv2.cvtColor(img_rgb, cv2.COLOR_RGB2GRAY) # 对图片进行高斯模糊,参数ksize表示高斯核的大小,sigmaX和sigmaY分别表示高斯核在 X 和 Y 方向上的标准差 img_blur = cv2.GaussianBlur(img_gray, ksize=(21, 21), sigmaX=0, sigmaY=0) # 对原图和模糊图像进行融合,cv2.divide()本质上进行的是两幅图像素级别的除法操作,其得到的结果可以简单理解为两幅图之间有明显差异的部分 divide = cv2.divide(img_gray, img_blur, scale=255) # 保存结果 cv2.imwrite(after_path, divide)
if __name__ == '__main__': before_path = r'C:\Users\min.wang\Desktop\11.jpg' after_path = r'C:\Users\min.wang\Desktop\22.jpg' make_sketch(before_path, after_path)

代码实现的主要步骤如下:

首先,我们使用cv2.imread()函数读取一张彩色照片,并保存在img变量中

然后,我们使用cv2.cvtColor()函数将彩色照片转换为灰度图像,保存在grey变量中

接着,我们使用cv2.bitwise_not()函数对灰度图像进行反转,保存在invert变量中

接下来,我们使用cv2.GaussianBlur()函数对反转后的图像进行高斯模糊处理,保存在blur_img变量中

然后,我们再次使用cv2.bitwise_not()函数对模糊图像进行反转,保存在inverse_blur变量中

最后,我们使用cv2.divide()函数将原始灰度图像与反转的模糊图像进行除法运算,通过调整scale参数来控制效果的强度,并将结果保存为素描图像

最后,我们使用cv2.imwrite()函数将素描图像保存为girl.jpg文件,并使用cv2.destroyAllWindows()函数关闭所有打开的窗口

篇外

以前一直想学习素描,高中时候有同学学习美术,看到他们画的素描图就很喜欢。但是学美术的补习费也是很感人,一个月几千,零几年的时候,感觉好贵。

【声明】内容源于网络
0
0
橙子好甜
人生苦短,我用python --it测试狗
内容 30
粉丝 0
橙子好甜 人生苦短,我用python --it测试狗
总阅读0
粉丝0
内容30