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

溫馨提示×

溫馨提示×

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

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

怎么利用Python實現圖片轉字符畫

發布時間:2022-06-28 14:21:19 來源:億速云 閱讀:138 作者:iii 欄目:開發技術

本文小編為大家詳細介紹“怎么利用Python實現圖片轉字符畫”,內容詳細,步驟清晰,細節處理妥當,希望這篇“怎么利用Python實現圖片轉字符畫”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

字符畫的原理

這種字符畫的原理也比較簡單,我們可以把每個字符看成是一個大的像素,一個字符可以代表一種顏色,字符各類越多,可體現的顏色越多,字符畫就更有層次感。

灰度值和RGB

灰度值是指黑白圖像中點的顏色的深度,它的范圍是0-255,白色為255,黑色為0,其他顏色介于兩者之間。

RGB 是紅綠藍三顏色,通過不同的疊加可得到其他顏色。

要將圖片轉字符畫,需要先定義一個字符集,用來和灰度值做映射,將圖片每個像素的 RGB 值轉換為一個灰度值,將其對應的字符輸出就得到字符畫。

RGB 轉灰度值,有個轉換學公式:

gray = (2126 * r + 7152 * g + 722 * b) / 10000

代碼實戰

我隨意選擇了一張圖片:

怎么利用Python實現圖片轉字符畫

我的目標是轉化成下面這樣:

怎么利用Python實現圖片轉字符畫

根據以上轉換原理,我們直接上代碼:

from PIL import Image
char = list('M3NB6Q#OC?7>!:–;. ')
def get_char(r, g, b, alpha=256):
    if alpha == 0:
        return ' '
    grey = (2126 * r + 7152 * g + 722 * b) / 10000
    char_idx = int((grey / (alpha + 1.0)) * len(char))
    return char[char_idx]

def write_file(out_file_name, content):
    with open(out_file_name, 'w') as f:
        f.write(content)
def main(file_name="input.jpg", width=100, height=80, out_file_name='output.txt'):
    text = ''
    im = Image.open(file_name)
    im = im.resize((width, height), Image.NEAREST)
    for i in range(height):
        for j in range(width):
            text += get_char(*im.getpixel((j, i)))
        text += '\n'
    print(text)
    write_file(out_file_name, text)

if __name__ == '__main__':
    main('dance.png')

程序的思路:

  • 定義一個字符數組,這個數組里面的字符可以隨意寫。

  • 解析圖片,將圖片里面的每個像素點解析成 RGB 值。

  • 根據我們上面的公式,將每個像素點轉換成字符數組里面的一個字符。

  • 將所有像素點對應的字符拼接起來,就完成了轉換。

讀到這里,這篇“怎么利用Python實現圖片轉字符畫”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

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

AI

象山县| 黔西县| 长治县| 阿拉尔市| 即墨市| 同心县| 松原市| 鹤山市| 思南县| 大关县| 澄城县| 玛多县| 南川市| 宜黄县| 桐城市| 谢通门县| 儋州市| 广丰县| 临城县| 三穗县| 抚松县| 江华| 瓮安县| 米泉市| 建瓯市| 比如县| 唐海县| 鱼台县| 邢台市| 黔东| 桓仁| 井陉县| 高平市| 北川| 什邡市| 南丰县| 高密市| 鄱阳县| 侯马市| 连南| 成都市|