这是我参与更文挑战的第26天,活动详情查看: 更文挑战
OpenCV是一个C++库,目前流行的计算机视觉编程库,用于实时处理计算机视觉方面的问题,它涵盖了很多计算机视觉领域的模块。在Python中常使用OpenCV库实现图像处理。

本文将介绍如何在Python3中使用OpenCV实现将图片转化为素描图。
前文
在Opencv中一张RGB颜色的图像经过下面四个步骤就能够生成出一张素描图:
- 1.将
RGB图转化为灰度图。 - 2.灰度图进行反色操作。
- 3.对步骤2中的图片进行高斯模糊
Gaussian blur。 - 4.将步骤1中的灰度图像和步骤三中的模糊反色图像混合,这里就用到亮化(
Dodging)和暗化(burning)的技术。
实现过程
原图

Step 1: 将图像转化为灰度图
实现代码:
import cv2
img_rgb = cv2.imread('example.jpg')
img_gray = cv2.cvtColor(img_rgb, cv2.COLOR_BGR2GRAY)
cv2.imshow('original', img_gray)
cv2.waitKey(0)
复制代码
输出为:

Step 2: 灰度反色操作
实现代码:
img_gray_inv = 255 - img_gray
复制代码
输出为:

Step 3: 高斯模糊
Gaussian blur能够很有效地减少图像中的噪声,能够将图像变得更加平滑一点,在数学上等价于用高斯核来对图像进行卷积操作。
实现代码:
img_blur = cv2.GaussianBlur(img_gray_inv, ksize=(21, 21), sigmaX=0, sigmaY=0)
复制代码
输出为:

Step 4: 灰度图与高斯模糊底片的融合
实现代码:
tmp = (image[col, row] << 8) / (255 - mask)
复制代码
输出为:

本月将陆续推出相关系列文章,
篇篇精彩,尽请关注。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END






















![[桜井宁宁]COS和泉纱雾超可爱写真福利集-一一网](https://www.proyy.com/skycj/data/images/2020-12-13/4d3cf227a85d7e79f5d6b4efb6bde3e8.jpg)

![[桜井宁宁] 爆乳奶牛少女cos写真-一一网](https://www.proyy.com/skycj/data/images/2020-12-13/d40483e126fcf567894e89c65eaca655.jpg)