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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java记事本编写HelloWorld程序[通俗易懂]

    Java记事本编写HelloWorld程序[通俗易懂]目录1编写第一个Java程序1.1高端的技术,往往使用最朴素的方法1.2编译后运行2main方法3输出语句4分号作用1编写第一个Java程序让我们编写一个简单的Java程序,它将在屏幕上打印“HelloWorld”。publicclassMain{publicstaticvoidmain(String[]args){System.out.println(“HelloWorld”);}}在上面的例子中,我们命

    2022年5月10日
    40
  • SQL 嵌套查询 —比较 很有用「建议收藏」

    SQL 嵌套查询 —比较 很有用「建议收藏」select  avg(datediff(year,Birthday,getdate()))asaveAge,Cofrom (selectbirthday,Cofromv_temp1whereBirthday!=”)asco groupbyco

    2022年8月10日
    7
  • 详解Cisco ACS AAA认证

    详解Cisco ACS AAA认证详解CiscoACSAAA认证近来,有些同学会问到关于AAA认证的问题,以及ciscoACS如何使用,那么今天我们就主要来讲一下关于这方面的知识。AAA代表Authentication、Authorization、Accounting,意为认证、授权、记帐,其主要目的是管理哪些用户可以访问服务器,具有访问权的用户可以得到哪些服务,如何…

    2022年5月10日
    44
  • 微信小程序页面跳转传参(对象、数组)「建议收藏」

    跳转事件jump:function(e){ letarray={id:1,name:’张三’}wx.navigateTo({url:’/pages/index/index?array=’+JSON.stringify(array), })}跳转页面onLoad:function(options){ console.log(‘跳转事件参数’,JSON.parse(options.array))},遇到问题可以看我主页加

    2022年4月16日
    83
  • Hashmap实现原理及扩容机制详解

    目录HashMap基础HashMap实现原理Node和Node链拉链法关于Node数组table散列算法HashMap和红黑树关于TreeNode红黑树基础HashMap扩容机制JDK1.7下的扩容机制JDK1.8下的扩容机制HashMap基础HashMap继承了AbstractMap类,实现了Map,Cloneable,Serializa…

    2022年4月4日
    86
  • sqlserver不存在或拒绝访问怎么办_sql数据库连接不上

    sqlserver不存在或拒绝访问怎么办_sql数据库连接不上Navicat连接SQLserver数据库时报错:未发现数据源名称并且未指定默认驱动程序导致原因:navicat没有安装sqlserver驱动解决办法:打开Navicat的安装路径,Navicat自带sqlncli_x64.msi,双击安装一下;安装完成之后重启Navicat即可连接成功!…

    2022年10月9日
    3

发表回复

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

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