您可能无法通过此程序将自己伪装成伟大的艺术家,但仍然可以使用它来制作一些令人印象深刻的图像。
制作精美的草图需要大量的时间和精力。Python 语言中的 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, (21, 21), 0)
invertedblur = cv2.bitwise_not(blur)
sketch = cv2.divide(grey, invertedblur, scale=256.0)
cv2.imshow(window_name, sketch)
❝文章创作不易,如果您喜欢这篇文章,请关注、点赞并分享给朋友。如有意见和建议,请在评论中反馈!
❞
微信扫一扫
关注该公众号