Python将图片转化成文字

简介: Python将图片转化成文字

我们之前学过词云能将数据变成图片展示出来,那么今天我们就来看个不同的,将图片变成字符输出。

看个效果图:

640.jpg

文字输出:

640.jpg

640.jpg


那么下面我们来看看代码吧!


import argparse
from PIL import Image
# 命令行输入参数处理
parser = argparse.ArgumentParser()
# 输入图片
parser.add_argument('file', 
                    help='the input file')
# 输出文件
parser.add_argument('-o', '--output', 
                    help='the output text file')
# 输出字符画宽度
parser.add_argument('-w', '--width',
                    type=int, default=40,
                    help='the width of the output, default is 40')
# 输出字符画高度
parser.add_argument('--height', 
                    type=int, default=40,
                    help='the height of the output, default is 40')
# 获取参数
args = parser.parse_args()
IMG = args.file
WIDTH = args.width
HEIGHT = args.height
OUTPUT = args.output
str = "$@B%8&WM#*oahkbdpqw" \
      "mZO0QLCJUYXzcvunxrjft/\|()" \
      "1{}[]?-_+~<>i!lI;:,\"^`'. "
ascii_char = list(str)
# 将256 灰度映射到 70 个字符上
def get_char(r, g, b, alpha=256):
    if alpha == 0:
        return " "
    length = len(ascii_char)
    gray = int(0.2126*r + 0.7152*g + 0.0722*b)
     # 每个字符对应的 gray 值区间宽度
    unit = (256.0+1)/length
     # gray值对应到 char_string 中的位置(索引值)
    index = int(gray/unit)
    return ascii_char[index]
if __name__ == "__main__":
    im = Image.open(IMG)
    im = im.resize((WIDTH, HEIGHT), Image.NEAREST)
    txt = ""
    for i in range(HEIGHT):
        for j in range(WIDTH):
            txt += get_char(*im.getpixel((j, i)))
        txt += '\n'
    print(txt)
    if OUTPUT:
        with open(OUTPUT, 'w') as f:
            f.write(txt)
    else:
        with open('output.txt', 'w') as f:
            f.write(txt)
相关文章
|
5天前
|
存储 索引 Python
python图片九宫格图片处理
本篇文章介绍了一个Python项目的实现,项目能够处理图片并将其组合成九宫格或四宫格,同时还具备音乐播放功能,对于初学者来说是一个可以进行实战学习的初级项目。
19 5
|
5天前
|
存储 计算机视觉 Python
python实现Gif图片的字符画
这是一个Python实战项目,旨在将GIF动态图转化为ASCII字符动画。项目适合有一定Python基础的学习者,主要使用os、imageio、PIL库。首先,代码导入所需库,然后通过PIL创建空白图片并添加文本。接着,程序读取GIF,拆分帧并转为字符画,存入“tmp”目录。同时,代码提供了清空“tmp”目录、将灰度值映射为ASCII字符、将图片处理成字符画的函数。此外,还有创建新画布和合成GIF的步骤。主函数调用这些模块,最终将ASCII字符画合并成GIF。项目展示了将动态图像转换为ASCII艺术的过程。
23 0
|
9天前
|
Python
python代码根据点坐标裁切图片
【4月更文挑战第19天】python代码根据点坐标裁切图片
23 2
|
18天前
|
数据采集 Web App开发 开发者
探秘Python爬虫技术:王者荣耀英雄图片爬取
探秘Python爬虫技术:王者荣耀英雄图片爬取
|
19天前
|
机器学习/深度学习 算法 自动驾驶
opencv python 图片叠加
【4月更文挑战第17天】
|
22天前
|
计算机视觉 Python
|
25天前
|
存储 前端开发 安全
python窗口刷新图片
【4月更文挑战第11天】
|
2月前
|
文字识别 数据挖掘 网络安全
Python实现avif图片转jpg格式并识别图片中的文字
在做数据分析的时候有些数据是从图片上去获取的,这就需要去识别图片上的文字。Python有很多库可以很方便的实现OCR识别图片中的文字。这里介绍用EasyOCR库进行图片文字识别。easyocr是一个比较流行的库,支持超过80种语言,识别率高,速度也比较快。
32 2
|
2月前
|
机器学习/深度学习 文字识别 自然语言处理
Python图片格式转换与文字识别:技术与实践
Python图片格式转换与文字识别:技术与实践
55 0
|
2月前
|
机器学习/深度学习 文字识别 数据安全/隐私保护
Python实现从PDF和图片提取文字的方法总结
Python实现从PDF和图片提取文字的方法总结
65 0