使用 Python 将图像转换为草图

信息技术资源 信息科技云课堂 2023-05-24 18:01 发表于山东
图片

您可能无法通过此程序将自己伪装成伟大的艺术家,但仍然可以使用它来制作一些令人印象深刻的图像。

图片

制作精美的草图需要大量的时间和精力。Python 语言中的 OpenCV 模块能帮我们解决问题,现在可以轻松转换图像为令人印象深刻的数字草图。

OpenCV 模块

OpenCV 是英特尔开发和维护的计算机视觉开源库,用于图像处理。用户可以轻松创建优化图像和视频的应用程序。

要在 Python 中使用 OpenCV 模块,请键入以下命令安装:

pip install opencv-python

加载显示图像

将 OpenCV 模块导入,使用 imread() 函数加载图像,使用 imshow() 函数显示图像。

import cv2
pic = cv2.imread('image.jpg')
window_name = 'Image processing'
cv2.imshow(window_name, pic)

彩色图像转换为灰度图像

可以利用 cvtColor() 函数,使用转换代码 COLOR_BGR2GRAY 完成转换。

grey = cv2.cvtColor(pic, cv2.COLOR_BGR2GRAY)

反转图像颜色

获得灰度图像后,反转其颜色。使用 bitwise_not() 函数将图像每个像素的值反转为其互补等效值。

invert = cv2.bitwise_not(grey)

高斯模糊并反转图像颜色

可以借助高斯模糊平滑图像。使用 OpenCV 的 GaussianBlur() 函数,参数为:内核大小(21,21)和 0 个标准差。

blur = cv2.GaussianBlur(invert, (21, 21), 0)

再次使用 bitwise_not() 函数反转图像颜色。

invertedblur = cv2.bitwise_not(blur)

图像相除

使用 divide() 函数将灰度图像与反转后的模糊图像执行的除法运算。

sketch = cv2.divide(grey, invertedblur, scale=256.0)

最后显示图像,完成彩色图像到草图转换。

图片

图片

「完整代码:」

import cv2
pic = cv2.imread('image.jpg')
window_name = 'Image processing'
grey = cv2.cvtColor(pic, cv2.COLOR_BGR2GRAY)
invert = cv2.bitwise_not(grey)
blur = cv2.GaussianBlur(invert, (2121), 0)
invertedblur = cv2.bitwise_not(blur)
sketch = cv2.divide(grey, invertedblur, scale=256.0)
cv2.imshow(window_name, sketch)

文章创作不易,如果您喜欢这篇文章,请关注、点赞并分享给朋友。如有意见和建议,请在评论中反馈!


收录于合集 #python
 135
上一篇你的密码有多强?使用 Python 检查密码安全性下一篇在 Python 中创建一个简单的闹钟

微信扫一扫
关注该公众号