首页资讯科技 图片转字符画生成器app

图片转字符画生成器app

前段时间我们学习了很多Python的基础语法,但是对于各种库的使用还是一知半解的,接下来我们挑选出几个重要库,通过有意思的小项目了解这些库的知识点。在Python中,有一个优秀的图像处理框架叫作PIL库,今天我们利用PIL库将图片变成一幅黑…

图片转字符画生成器app

前段时间,我们学习了很多Python的基本语法,但是对各种库的使用了解不多。接下来我们选取了几个重要的库,通过有趣的小项目学习这些库的知识点。

在Python中,有一个优秀的图像处理框架,叫做PIL库。今天,我们用PIL图书馆把一幅画变成了一幅黑白人物画。

人物画是一系列人物的组合。我们可以把字符想象成更大的像素,一个字符可以表达一种颜色。人物种类越多,可以表现的色彩就越多,画面也会越有层次感。

想要手绘人物画,首先要有扎实的美术功底,然后要花费大量的时间和精力。但是我们可以用Python,只需要几行代码就可以轻松的把一张图片变成人物画。

这个小猪佩奇是一幅人物画,使用Python的PIL库,用人物替换颜色完成的。

我们知道一张RGB模式的图片是由很多像素组成的,每个像素都有不同的颜色,而这个颜色可以用三个值来表示(RGB,范围0-255),对应的是组成这个颜色的三原色的百分比。所以RGB模式总共可以表现256× 256× 256 = 16,777,216种颜色。如果每个像素可以根据其颜色用一个字符代替,就可以形成一个字符图片。

那么问题来了。我们没有那么多字符去一一对应每种颜色。这时候我们就要引入灰度的概念了。对于黑白图像中的像素,我们可以用灰度值来表示它们的色深。通常,范围是从0到255,白色为255,黑色为0。这种图片也叫灰度图像。我们可以通过RGB转换灰度公式将像素的RGB值映射成灰度值。这个公式的具体算法不止一个(常见的有三个),计算结果略有不同。有兴趣的同学可以百度一下算法。

灰度值公式:灰度= 0.2126× r+0.7152× g+0.0722× b

通过公式的转换,可以将256×256×256的色彩范围缩小到0-255的灰度范围。但是256个数值的范围还是有点多,很难用字符一一对应。然而,通过将两个或三个灰度值对应到一个字符,可以使用一点灵活性来成功地解决问题。

首先,导入Python图像处理库——PIL。自定义字符绘制需要的字符集是ascii_char,我在其中选了70个字符。字符顺序影响与灰度的对应关系,可以根据字符绘制的效果反复调整。

选一张需要画人物的图。在这里,我选择了哆啦a梦的头部来确定人物画的宽度和高度。考虑到人物本身的长宽比,为了美观,画面的宽度应该是高度的两倍多一点。接下来,我们需要定义一个get_chart函数。该功能的目的是通过灰度区分色块。利用灰度值公式,计算出对应不同灰度级的不同字符。将所需图片导入Python环境,通过double for循环遍历图像的像素,利用灰度值公式转换灰度值,输出相应的字符图片。运行程序后,可以将人物画图与原图进行对比,可以发现人物画图在一些细节上可以进行优化,比如根据人物的复杂程度调整列表的顺序。总的来说,转换过程达到了预期目的。

把哆啦a梦改造成人物画案,我们学到了一项新技能。赶紧打开你的Python编辑器,做一个有趣的人物画像吧。偷偷告诉你,Python还可以制作动画GIF角色。不要急着尝试。

本文来自网络,不代表管理窝立场。转载请注明出处: https://www.guanliwo.com/a/zx/63420.html
上一篇数学蜗牛爬杆
下一篇 掌控板利用物联网统计分析噪声
管理窝

作者: 管理窝

这里可以再内容模板定义一些文字和说明,也可以调用对应作者的简介!或者做一些网站的描述之类的文字或者HTML!

为您推荐

评论列表()

    联系我们

    联系我们

    0898-88888888

    在线咨询: QQ交谈

    邮箱: email@wangzhan.com

    工作时间:周一至周五,9:00-17:30,节假日休息

    关注微信
    微信扫一扫关注我们

    微信扫一扫关注我们

    关注微博
    返回顶部