iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >怎么用Python将自拍转换为卡通风格
  • 222
分享到

怎么用Python将自拍转换为卡通风格

2023-06-15 18:06:14 222人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要介绍“怎么用python将自拍转换为卡通风格”,在日常操作中,相信很多人在怎么用Python将自拍转换为卡通风格问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用Python将自拍转换为卡通风格

这篇文章主要介绍“怎么用python将自拍转换为卡通风格”,在日常操作中,相信很多人在怎么用Python将自拍转换为卡通风格问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用Python将自拍转换为卡通风格”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

如今,画素描或创作漫画并不一定要手动完成,许多应用程序可以把你的照片转换成卡通图片。这并不像你想象中那么难,只需几行代码就能实现想要的效果。

有一个名为OpenCV的库,为计算机视觉应用提供了通用基础设施,并对机器学习算法进行了优化。它可用于识别物体、检测并生成高分辨率图像。本教程将展示如何利用OpenCV在Python中赋予图像卡通效果。教程中将使用Google  Colab来编写并运行代码。

怎么用Python将自拍转换为卡通风格

要想制造出卡通效果,需要注意两点:边缘和调色板。这就是照片和卡通图片之间的区别。要调整这两个要点,将通过四个主要步骤:

  • 载入图像

  • 创建边缘蒙版

  • 减少调色板

  • 将边缘蒙版与经过颜色处理的图像结合起来

在开始之前,别忘了在笔记本中导入所需的库,尤其是cv2和NumPy。

defread_file(filename):                        img = cv2.imread(filename)                        cv2_imshow(img)                        return img

1. 载入图像

第一个步骤是载入图片。定义read_file函数,其中包含cv2_imshow,来载入我们在Google Colab中选择的图片。

defread_file(filename):                        img = cv2.imread(filename)                        cv2_imshow(img)                        return img

调用创建的函数来载入图像:

uploaded = files.upload() filename = next(iter(uploaded)) img = read_file(filename)

我选择将下面这张图变为卡通图片:

怎么用Python将自拍转换为卡通风格

2. 创建边缘蒙版

常见的卡通效果强调图像中边缘的厚度。可以通过cv2.adaptiveThreshold()  函数来检测图像中的边缘。我们可以将egde_mask函数定义为:

defedge_mask(img, line_size,blur_value):                 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)                 gray_blur = cv2.medianBlur(gray,blur_value)                 edges = cv2.adaptiveThreshold(gray_blur, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, line_size,blur_value)                 return edges

在该函数中,我们将图像转换成灰度图像,然后使用cv2.medianBlur来减少模糊的灰度图像的噪点。模糊值越大,意味着图像中出现的黑色噪点越少。接着,应用adaptiveThreshold函数,定义边缘的线条粗细。线条越粗,意味着图像中强调的边缘越厚。

定义完函数后,调用函数就可以看到结果了。

line_size = 7 blur_value = 7edges = edge_mask(img, line_size, blur_value) cv2_imshow(edges)

怎么用Python将自拍转换为卡通风格

边缘蒙版检测

3. 减少调色板

在颜色方面,照片和素描的主要区别是它们各自的颜色数量。素描的颜色比照片少。因此,我们使用颜色量化来减少照片中的颜色数量。

要进行颜色量化,我们应用OpenCV库提供的K均值聚类算法。为了在接下来的步骤中使用更方便,可以定义color_quantization函数如下:

defcolor_quantization(img, k):                         # TransfORM theimage                           data = np.float32(img).reshape((-1, 3))                                                 # Determinecriteria                           criteria = (cv2.TERM_CRITERIA_EPS+ cv2.TERM_CRITERIA_MAX_ITER, 20, 0.001)              # ImplementingK-Means                           ret, label, center = cv2.kmeans(data, k, None, criteria, 10, cv2.KMEANS_RANDOM_CENTERS)                           center = np.uint8(center)                           result = center[label.flatten()]                           resultresult = result.reshape(img.shape)                           return result

可以调整k值来确定想要应用到图像的颜色数量:

total_color = 9 img = color_quantization(img, total_color)

在本例中,图像的k值设置为9。结果如下所示:

怎么用Python将自拍转换为卡通风格

颜色量化后

完成颜色量化后,可以通过双边滤波来降低图像中的噪点。这会使图像变得稍微模糊,且锐度降低。

blurred = cv2.bilateralFilter(img, d=7, sigMacolor=200,sigmaSpace=200)

这里有三个参数,你可以根据自己的喜好进行调整。

  • d —每个像素邻域的直径。

  • sigmaColor —该参数的值越大,表示半等色的区域越大。

  • sigmaSpace –该参数的值越大,意味着较远的像素只要其颜色足够接近,就会相互影响。

怎么用Python将自拍转换为卡通风格

使用双边滤波后

4. 将边缘蒙版与经过颜色处理的图像相结合

最后一步是将我们之前创建的边缘蒙版与经过颜色处理的图像相结合。要做到这一点,需要使用cv2.bitwise_and函数。

cartoon = cv2.bitwise_and(blurred, blurred, mask=edges)

这就是原图的“卡通版”:

怎么用Python将自拍转换为卡通风格

最终效果

现在你可以开始创建属于自己的卡通效果啦。除了调整我们上面使用的参数值,你还可以从OpenCV中添加另一个函数来给你的照片添加特殊效果,库中还有很多可以探索的东西。尝试愉快!

到此,关于“怎么用Python将自拍转换为卡通风格”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: 怎么用Python将自拍转换为卡通风格

本文链接: https://www.lsjlt.com/news/281220.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么用Python将自拍转换为卡通风格
    这篇文章主要介绍“怎么用Python将自拍转换为卡通风格”,在日常操作中,相信很多人在怎么用Python将自拍转换为卡通风格问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用Python将自拍转换为卡通风格...
    99+
    2023-06-15
  • 怎么将自由风格项目转换为管道项目CI/CD
    这篇文章主要介绍“怎么将自由风格项目转换为管道项目CI/CD”,在日常操作中,相信很多人在怎么将自由风格项目转换为管道项目CI/CD问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解...
    99+
    2024-04-02
  • 怎么使用Python将图片转为漫画风格
    安装OpenCV首先,我们需要安装OpenCV。OpenCV是一个开源计算机视觉库,它提供了各种各样的图像处理工具,可以用于许多不同的应用程序。我们可以使用以下命令在Python中安装OpenCV: pip install opencv-p...
    99+
    2023-05-14
    Python
  • Python怎么将xml格式转换为json格式
    本篇内容介绍了“Python怎么将xml格式转换为json格式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在Python编程中,经常遇到x...
    99+
    2023-06-02
  • 如何使用Python将图片转为漫画风格
    本篇内容主要讲解“如何使用Python将图片转为漫画风格”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用Python将图片转为漫画风格”吧!安装OpenCV首先,我们需要安装OpenCV。...
    99+
    2023-07-06
  • javascript怎么将时间戳转换为普通日期格式
    小编给大家分享一下javascript怎么将时间戳转换为普通日期格式,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!javascript把时间戳转换为普通日期格式的方法:1、使用Date toLocaleString方法;2...
    99+
    2023-06-14
  • php怎么将word转换为html格式
    本篇内容主要讲解“php怎么将word转换为html格式”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php怎么将word转换为html格式”吧!PHP将上传word文件,转化为Html格式,(...
    99+
    2023-06-20
  • windows中怎么将swf格式转换为MP4格式
    这篇“windows中怎么将swf格式转换为MP4格式”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“windows中怎么将s...
    99+
    2023-07-01
  • 怎么使用PHP将数组转换为JSON格式
    这篇文章主要介绍“怎么使用PHP将数组转换为JSON格式”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么使用PHP将数组转换为JSON格式”文章能帮助大家解决问题。PHP是一种广泛使用的服务器端脚...
    99+
    2023-07-05
  • 怎么用python包pdfkit将HTML转换为PDF
    本篇内容介绍了“怎么用python包pdfkit将HTML转换为PDF”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!python包-pdfk...
    99+
    2023-06-30
  • Python中怎么将音频内容转换为文本格式
    这篇文章将为大家详细讲解有关Python中怎么将音频内容转换为文本格式,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。搭建开发环境转到保存Python虚拟环境的目录。我将我的目录保存在用户主目...
    99+
    2023-06-16
  • 怎么将JSON转换为HTML格式并显示
    这篇文章主要介绍怎么将JSON转换为HTML格式并显示,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!html有什么特点1、简易性:超级文本标记语言版本升级采用超集方式,从而更加灵活方便,适合初学前端开发者使用。2、可...
    99+
    2023-06-14
  • PHP中怎么将数组转换为JSON格式
    在PHP中,可以使用json_encode()函数将数组转换为JSON格式。例如: $myArray = array('f...
    99+
    2024-04-02
  • 怎么将CAD转换为JPG格式?CAD格式转换轻松教你搞定!
    对于许多CAD设计师们来说,对于CAD的格式转换可以说的司空见惯了,由于CAD格式 的特殊性,以至于我们不能在PC或移动端直接对CAD进行查看,这时就需要设计师们将CAD转换为其他易于查看的CAD格式才能查看,其中经常使用到的就是CAD转P...
    99+
    2023-06-03
  • 怎么使用pandoc将Markdown转换为格式化文档
    小编给大家分享一下怎么使用pandoc将Markdown转换为格式化文档,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!基本转换首先,在你的计算机上安装 pando...
    99+
    2023-06-16
  • 怎么在将html转换为word文档格式
    怎么在将html转换为word文档格式?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1、首先在HTML网页任意位置点击鼠标右键,选择“网页另存为”。2、根据需要将HTML网...
    99+
    2023-06-14
  • 怎么用php将utf-8文件转换为gbk格式
    本篇内容主要讲解“怎么用php将utf-8文件转换为gbk格式”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用php将utf-8文件转换为gbk格式”吧!首先,让我们对文件编码有一些基本认识...
    99+
    2023-07-05
  • 怎么通过POI将HTML转换为Word文档
    本文小编为大家详细介绍“怎么通过POI将HTML转换为Word文档”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么通过POI将HTML转换为Word文档”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。首先,我们...
    99+
    2023-07-06
  • SQL 怎么将日期格式转换为常用字符串格式
    SQL 怎么将日期格式转换为常用字符串格式,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。SQL 将日期格式转换为常用字符串格...
    99+
    2024-04-02
  • 怎么在python中将dataframe转换为ndarray
    这篇文章将为大家详细讲解有关怎么在python中将dataframe转换为ndarray,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。python有哪些常用库python常用的库:1.req...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作