91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python畫字符畫的實現原理

發布時間:2021-08-30 16:10:56 來源:億速云 閱讀:198 作者:chen 欄目:大數據

這篇文章主要講解了“python畫字符畫的實現原理”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“python畫字符畫的實現原理”吧!

1.先看效果

原圖是

python畫字符畫的實現原理

字符畫

python畫字符畫的實現原理

2.實現原理

其實原理非常簡單,首先,要準備一個字符集

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

其次,要將圖片轉成灰度圖,所謂灰度圖就是黑白照片,這個過程中還要縮小圖片,每張圖片縮小的比例都不盡相同,要根據圖片的實際情況來決定,這樣就得到了一張縮小后的黑白照片

im = Image.open('qq.png')
im = im.resize((80, 50), Image.ANTIALIAS)
im = im.convert('L')    # 轉為黑白圖, 每個像素都一個灰度值,從0到255, 0是黑色, 255是白色
im.save('t.jpeg')   # 保存圖片只是為了演示黑白照片

python畫字符畫的實現原理

看起來有一些丑陋,這張黑白照片一共有80*50個像素,每個像素點都可以通過im.getpixel方法獲得灰度值,這個值的范圍是從0到255,0是黑色,255是白素,中間就是從黑到白的灰色。

接下來要做的事情就是把4000個灰度值轉成字符

def get_char(gray):
   if gray >= 240:
       return ' '
   else:
       return char_set[int(gray/((256.0 + 1)/len(char_set)))]

灰度值大于240的,我都轉成空字符串,這樣看著舒服,其余的,按比例映射到字符集上。

強調一點,生成的txt文件不要打開查看,那樣你看不到一個完整的字符畫,在瀏覽器里打開字符畫,這樣才可以看到完整的,如果你把縮小的比例再放大一點,生成的字符畫就會失去很多細節,一般來說,寬80就可以了,高度看情況調整。

3.完整代碼

from PIL import Image

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


im = Image.open('qq.png')
im = im.resize((80, 50), Image.ANTIALIAS)
im = im.convert('L')    # 轉為黑白圖, 每個像素都一個灰度值,從0到255, 0是黑色, 255是白色
im.save('t.jpeg')


def get_char(gray):
   if gray >= 240:
       return ' '
   else:
       return char_set[int(gray/((256.0 + 1)/len(char_set)))]

text = ''
for i in range(im.height):
   for j in range(im.width):
       gray = im.getpixel((j, i))      # 返回值可能是一個int, 也可能是一個三元組
       if isinstance(gray, tuple):
           gray = int(0.2126 * gray[0] + 0.7152 * gray[1] + 0.0722 * gray[2])

       text += get_char(gray)
   text += '\n'

with open('pic.txt', 'w')as f:
   f.write(text)

感謝各位的閱讀,以上就是“python畫字符畫的實現原理”的內容了,經過本文的學習后,相信大家對python畫字符畫的實現原理這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

加查县| 蓬溪县| 余干县| 沧州市| 青岛市| 霍城县| 玉溪市| 监利县| 万荣县| 凤冈县| 鄂托克旗| 玛沁县| 长宁县| 肃北| 惠安县| 曲靖市| 探索| 长岭县| 杭锦旗| 石台县| 金门县| 丽水市| 邵武市| 巴彦县| 泗水县| 安阳县| 遂昌县| 巴楚县| 华容县| 垣曲县| 文山县| 富锦市| 唐海县| 麻江县| 呼伦贝尔市| 仁寿县| 阳城县| 田东县| 新乐市| 徐州市| 邵东县|