本文目錄一覽:
怎麼用python將圖片轉換為文本形式?
ocr有開源的模塊。也有國產的。總體來講,國產的更準確。不過最好事先做一次圖像處理。
幾年前試過python調用開源模塊識別。現在是什麼情形不太清楚了。
python的圖片轉字符
from PILimport Image
ascii_char =list(“!~#$%^**()_+`=][\{}|;’:?/”)
#字符與RGB的對應的映射關係
def get_char(r,g,b,alpha=256):
if alpha ==0 :
return ‘ ‘
lenght =len(ascii_char)
gray =int(0.2126 * r +0.7152 * g +0.0722 * b)
unit = (256.0 +1)/lenght
return ascii_char[int(gray/unit)]
if __name__ ==’__main__’:
im = Image.open(r”C:\Users\鵬COMPUTER\Desktop\timg.jpg”)
#這裡是轉換圖片的大小,然後第二個參數表示圖片的質量,一共有4種,低質量Image.NEARSET,雙線性Image.BILINEAR,三次樣條插值Image.BICUBIC,高質量Image.ANTIALIAS
im = im.resize((60,30),Image.NEAREST)
txt =””
for iin range(30):
for jin range(60):
#im.getpixel:根據坐標取得RGB對應的r,g,b三個值,這裡的getpixel((i,j))的兩個括號非常重要
txt += get_char(*im.getpixel((j,i)))
txt +=’\n’
print(txt)
with open(r”C:\Users\鵬COMPUTER\Desktop\m.txt”,’w’)as f:
f.write(txt)
這是輸出的字符串:
如何用python將圖片轉為字符畫
# coding:utf-8
# 為一張圖片生成對應的字符集圖片
from PIL import Image
import argparse
# 命令行輸入參數處理
parser = argparse.ArgumentParser()
parser.add_argument(‘file’) # 輸入文件
parser.add_argument(‘-o’, ‘–output’) # 輸出文件
parser.add_argument(‘–width’, type=int, default=80) # 輸出字符畫寬
parser.add_argument(‘–height’, type=int, default=80) # 輸出字符畫高
# 獲取參數
args = parser.parse_args()
IMG = args.file
WIDTH = args.width
HEIGHT = args.height
OUTPUT = args.output
ascii_char = list(“$@B%8WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~i!lI;:,\”^`’. “)
# 將256灰度映射到70個字符上
def get_char(r, b, g, alpha=256):
if alpha == 0:
return ‘ ‘
length = len(ascii_char)
gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b)
unit = (256.0 + 1)/length
return ascii_char[int(gray/unit)]
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)
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/270102.html