python【图片转字符画】,图片灰度值处理

python【图片转字符画】,图片灰度值处理

python【图片转字符画】,图片灰度值处理

老规矩,先上效果图

在这里插入图片描述

在这里插入图片描述
理论很简单,就是对图片操作,这里需要用到PIL的python包,里面有很好用的图像处理功能。

先打开图片,把图像调整大小。

img = Image.open(picPath)
img = img.resize((picW, picH))

然后读取灰度值,再把灰度值和字符对应起来就行。

from PIL import Image

lstChars = list("$@B%8&WM#*oahkbdpqwmZO0QLaCJUYXzczjhdhsdavunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'.") 

def oneChars(r, g, b, alpha = 256):
    global lstChars
    length = len(lstChars)
    gray = int(0.2126 * r + 0.7152 * g + 0.722 * b)
    index =length*gray
    return lstChars[index]

picPath = "C:\Users\Administrator\Desktop\\aaaaa\\aa.png"
picH = 40
picW =  80

img = Image.open(picPath)
img = img.resize((picW, picH))

txt = ""
for y in range(picH):
    for x in range(picW):
        txt += oneChars(img.getpixel((x, y)))
    txt += '\n'

print txt

小伙伴有什么问题可以和小编交流。这里需要自行下载PIL包,如果不知道怎么下载的话,也可以问我拿。
q:2316773638

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/2865.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 5种单例模式的Java实现[通俗易懂]

    5种单例模式的Java实现[通俗易懂]参考链接:http://www.mianshigee.com/topic/1022grf/1、懒汉式单例、线程不安全publicclassSingleton{privatestaticSingletonuniqueInstance;//构造方法privateSingleton(){};//实例方法publicstaticSingletongetInstance(){if(uniqueInstance=.

    2022年7月8日
    15
  • linux服务器杀进程,linux杀死进程命令[通俗易懂]

    进程ID注:信号代码可以省略;我们常用的信号代码是-9,表示强制终止;举例:[root@localhost~]#psauxf|grephttpdroot49390.00.05160708pts/3S+13:100:00\_grephttpdroot48300.11.32423210272?Ss13:020:00/usr/sbin/httpd…

    2022年4月16日
    162
  • 宽度学习系统(BLS)的原理、变体形式及当前应用(随时更新……)「建议收藏」

    宽度学习系统(BLS)的原理、变体形式及当前应用(随时更新……)「建议收藏」本文将综述宽度学习系统(BLS)和它的几种变体形式,以及它们在不同领域的几种具体应用(随时更新……)

    2022年5月11日
    31
  • LoadRunner教程07:回放测试脚本

    LoadRunner教程07:回放测试脚本1、设置runtimesetting,在vuser->runtimeseting下设置,如下图所示:2、实时观察回放的图像,在tools->generaloptions下设置,如下图所示:3、回放脚本,点击上面的运行按钮,可以回放脚本,有静态和动态运行(会标识出当前运行在哪一行代码)两种方式,在view-animatedrun中设置4、查看resu

    2022年5月10日
    36
  • int8 int16 int32 int64 float16 float32

    int8 int16 int32 int64 float16 float32int8取值范围是-128-127Int16意思是16位整数(16bitinteger),相当于short占2个字节-32768~32767Int32意思是32位整数(32bitinteger),相当于int占4个字节-2147483648~2147483647Int64意思是64位整数(64bitinterger),相当于longlong占8个字节-9223372036854775808~92233720368547

    2022年8月15日
    1
  • linux 解压rar密码,linux下rar包的压缩与解压方案

    linux 解压rar密码,linux下rar包的压缩与解压方案方法一:yuminstallunrar方法二:下载地址:以最新的为准。对于Window下的常见压缩文件.zip和.rar,Linux也有相应的方法来解压它们:1:对于.ziplinux下提供了zip和unzip程序,zip是压缩程序,unzip是解压程序。它们的参数选项很多,这里只做简单介绍,举例说明一下其用法:#zipall.zip*.jpg(这条命令是将所有.jpg的文件压缩成一个z…

    2022年7月11日
    30

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号