python:将图片转化为字符画

原理:

  • 将简单的表情图取灰度图像二值化,然后不同值用不同的字符串代替该像素即可
  • 扩展一下,可自行定义一个数值(最好为2的指数幂,2,4,8,16等),将256个灰度值等分成几个范围,以4为例,先自行定义四个字符0-63为第一块,64-127为第二块,然后扫描灰度图,按灰度值确定属于四个范围的哪一块,然后用相应的字符替换该像素即可
  • 显而易见的是:当我们取值越大,给出的字符越多时,越能体现图像的细节,但是鉴于字符的文本显示非常依赖于编辑器,所以效果反而可能不是很好。

一些总结

举例字符数组的排列比较有讲究,换一个顺序,图片的展示效果完全不一样,这个大家可以自行测试。

以我个人的使用经验来看,字符之间的渐变应该比较小,但是两端的区别较大,这样的设置显示效果理论上应该比较好,举例:mn这两个字符相邻比较合适,空格$@#之类的字符应该隔得比较远,简单来说整个样例字符的分布理想状态应该类似于一条由明到暗的渐变带一样,大家可以自行调整顺序尝试合适的顺序

效果展示:

原图:

《python:将图片转化为字符画》 flower.JPG

转换后的图(二值):

《python:将图片转化为字符画》 二值效果图

转换后的图(四值):

《python:将图片转化为字符画》 四值效果图

源代码:github:pythonImage

    原文作者:我爱chi西瓜
    原文地址: https://www.jianshu.com/p/958ab5ed52c4
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞