python转图片为字符图,图片转文字 python
画图片字符的Python代码:首先计算图片颜色对应的灰度值;然后根据灰度值从代码为[args=parser.parse_args ()]的字符集中获取图片中每个像素对应的字符。
本教程运行环境:windows7系统,python3.9版本3.9,戴尔G3电脑。这个方法适用于所有品牌的电脑。
相关免费学习推荐:python视频教程
原则
1.计算图片颜色对应的灰度值。计算公式如下
格雷=0.2126 * r0.7152 * g0.0722 * B2。根据灰度值,从字符集中获取图片中每个像素对应的字符。
密码
# !/usr/bin/env python
# -*-编码:utf-8 -*-
从PIL进口图片
导入argparse
#命令行输入参数处理
parser=argparse。ArgumentParser()
Parser.add_argument(file) #输入文件
Parser.add _ argument (-o ,-output) #输出文件
Parser.add _ argument (-width ,type=int,default=50) #输出字符绘制宽度
Parser.add _ argument (-height ,type=int,default=50) #输出字符绘制为高。
#获取参数
args=parser.parse_args()
IMG=args.file
WIDTH=args.width
HEIGHT=args.height
输出=args.output
#字符绘制使用的字符集
ascii _ char=list( $ @ B % 8WM # * oahkbdpqwmzo 0 qlcjuyxzcvunxrjft/\ ()1 { }[]?-_ ~我!李;\^`. )
def get_char(r,g,b,alpha=256):
将256灰度映射到70个字符
如果==0:
返回“”
length=len(ascii_char)
#计算灰度的公式
gray=int(0.2126 * r 0.7152 * g 0.0722 * b)
单位=(256.0 1)/长度
index=int(灰色/单位)
返回ascii_char[index]
if __name__==__main__:
im=Image.open(IMG)
im=im.resize((宽度,高度),图像。最近的)
txt=
#获取每个像素对应的字符
对于在范围(高度):的I
对于范围(宽度):内的j
txt=get_char(*im.getpixel((j,I)))
txt=\n
打印(文本)
#字符绘画输出到文件
如果输出:
开(输出,“w”)为f:
f .写(txt)
else:
用open(output.txt , w )作为f:
F.write(txt)z运行结果
以上是python图片音译代码的详细内容。更多信息请关注盛行IT软件开发工作室的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。