Python文档阅读笔记-Turn Images into Cartoons using Python

Posted IT1995

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python文档阅读笔记-Turn Images into Cartoons using Python相关的知识,希望对你有一定的参考价值。

本博文说明如何将图片转为卡通风格。

1. 导入依赖模块

在编程的第一步首先要导入依赖库,在这个图像转换成卡通风格的程序中需要包含3个模块,分别是openCV,numpy,matpoltlib。

import cv2
import numpy as np
import matplotlib.pyplot as plt

2. 加载并绘制原始图片

第二步是使用imread函数读取图片,再使用cvtColor函数将图片转换为RGB格式。随后使用imshow函数绘制图片。代码如下所示:

img = cv2.imread("image.jpg")
img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
plt.figure(figsize=(10,10))
plt.imshow(img)
plt.axis("off")
plt.title("Original Image")
plt.show()

3. 将图片转换为灰度

这一步是使用cvColor函数将图片转换为灰度图。做这一步的原因是使用灰度图可以减少程序的时间复杂度。

代码如下所示。

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
gray = cv2.medianBlur(gray, 5)
plt.figure(figsize=(10,10))
plt.imshow(gray,cmap="gray")
plt.axis("off")
plt.title("Grayscale Image")
plt.show()

4. 获取边缘图片

图片边缘化能够使得处理更加简单,从灰度图像中获取边缘图片,然后将此边缘图片进行卷积网络。

使用adaptiveThreshold进行参数的设置,从而获取边缘图片,代码如下:

edges = cv2.adaptiveThreshold(gray, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 9, 9)
plt.figure(figsize=(10,10))
plt.imshow(edges,cmap="gray")
plt.axis("off")
plt.title("Edged Image")
plt.show()

5. 将图片转换为卡通风格

最后使用bilateralFilter函数进行卷积过滤。通过逐位运算,使用原始图片和卷积图片最终生成卡通图。

代码如下:

color = cv2.bilateralFilter(img, 9, 250, 250)
cartoon = cv2.bitwise_and(color, color, mask=edges)
plt.figure(figsize=(10,10))
plt.imshow(cartoon,cmap="gray")
plt.axis("off")
plt.title("Cartoon Image")
plt.show()

最后输出的卡通图片

下面展示不同原始图片转换为不同版本的图片。

 

 试下其他图片:

 

以上是关于Python文档阅读笔记-Turn Images into Cartoons using Python的主要内容,如果未能解决你的问题,请参考以下文章

Python文档阅读笔记-Turn Images into Cartoons using Python

Python 3.6文档阅读笔记

Automated defect analysis in electron microscopic images-论文阅读笔记

Python文档阅读笔记-PyAutoGUI基本使用

Automatic classification of defective photovoltaic module cells in electroluminescence images-论文阅读笔记

文献阅读与想法笔记13 Unprocessing Images for Learned Raw Denoising