【Python3-OpenCV】将图片转化为素描图

·  阅读 595
【Python3-OpenCV】将图片转化为素描图

这是我参与更文挑战的第26天,活动详情查看: 更文挑战

OpenCV是一个C++库,目前流行的计算机视觉编程库,用于实时处理计算机视觉方面的问题,它涵盖了很多计算机视觉领域的模块。在Python中常使用OpenCV库实现图像处理。

image.png

本文将介绍如何在Python3中使用OpenCV实现将图片转化为素描图。

前文

Opencv中一张RGB颜色的图像经过下面四个步骤就能够生成出一张素描图:

  • 1.将RGB图转化为灰度图。
  • 2.灰度图进行反色操作。
  • 3.对步骤2中的图片进行高斯模糊Gaussian blur
  • 4.将步骤1中的灰度图像和步骤三中的模糊反色图像混合,这里就用到亮化(Dodging)和暗化(burning)的技术。

实现过程

原图

image.png

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)

输出为:

image.png

Step 2: 灰度反色操作

实现代码:

img_gray_inv = 255 - img_gray

输出为:

image.png

Step 3: 高斯模糊

Gaussian blur能够很有效地减少图像中的噪声,能够将图像变得更加平滑一点,在数学上等价于用高斯核来对图像进行卷积操作。

实现代码:

img_blur = cv2.GaussianBlur(img_gray_inv, ksize=(21, 21), sigmaX=0, sigmaY=0)

输出为:

image.png

Step 4: 灰度图与高斯模糊底片的融合

实现代码:

tmp = (image[col, row] << 8) / (255 - mask)

输出为:

image.png

本月将陆续推出相关系列文章,

篇篇精彩,尽请关注。

分类:
后端
标签:
分类:
后端
标签:
收藏成功!
已添加到「」, 点击更改