最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何利用python實(shí)現(xiàn)圖片轉(zhuǎn)化字符畫

 更新時間:2022年06月24日 16:21:50   作者:??詩一樣的代碼????  
這篇文章主要介紹了如何利用python實(shí)現(xiàn)圖片轉(zhuǎn)化字符畫,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下

前言:

字符畫:字符畫是一系列字符的組合,我們可以把字符看作是比較大塊的像素,一個字符能表現(xiàn)一種顏色,字符的種類越多,可以表現(xiàn)的顏色也越多,圖片也會更有層次感。

如果我們想要手工繪制出字符畫,首先要有扎實(shí)的美術(shù)基礎(chǔ),其次還要花費(fèi)大量的時間和精力。但是我們可以使用Python,只需要幾行代碼,就能夠?qū)⒁粡垐D片輕而易舉地轉(zhuǎn)化為一個字符畫。

實(shí)例1

效果圖:

理論很簡單,就是對圖片操作,這里需要用到PIL的python包,里面有很好用的圖像處理功能。

先打開圖片,把圖像調(diào)整大?。?/strong>

img = Image.open(picPath)
img = img.resize((picW, picH))

然后讀取灰度值,再把灰度值和字符對應(yīng)起來就行。

from PIL import Image
lstChars = list("$@B%8&WM#*oahkbdpqwmZO0QLaCJUYXzczjhdhsdavunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'.") 
def oneChars(r, g, b, alpha = 256):
    global lstChars
    length = len(lstChars)
    gray = int(0.2126 * r + 0.7152 * g + 0.722 * b)
    index =length*gray
    return lstChars[index]
picPath = "C:\Users\Administrator\Desktop\\aaaaa\\aa.png"
picH = 40
picW =  80
img = Image.open(picPath)
img = img.resize((picW, picH))
txt = ""
for y in range(picH):
    for x in range(picW):
        txt += oneChars(img.getpixel((x, y)))
    txt += '\n'

print txt

實(shí)例2

下面是源碼:

# -*- coding=utf-8 -*-
from PIL import Image
IMG = 'IMG.jpg' ?# 設(shè)置圖片文件
WIDTH = 150 ?# 設(shè)置字符畫的寬
HEIGHT = 80 ?# 設(shè)置字符畫的高
OUTPUT = 'T.txt' ?# 設(shè)置存放字符畫的文本文件
ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ") ?# 設(shè)置顯示的字符集
# 將256灰度映射到70個字符上
def get_char(r, g, b, alpha=256):
???# alpha為透明度
???# 判斷 alpha 值,為0表示全透明
???if alpha == 0:
???????return ' '
???# 獲取字符集的長度,這里為 70
???length = len(ascii_char)
???# 將 RGB 值轉(zhuǎn)為灰度值 gray,灰度值范圍為 0-255
???gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b)
???# 灰度值范圍為 0-255,而字符集只有 70
???# 需要進(jìn)行如下處理才能將灰度值映射到指定的字符上
???# 防止當(dāng)灰度值為255時,輸出的第70個字符超出列表索引,所以需要將(255+1)
???unit = (255.0 + 1) / length
???# 返回灰度值對應(yīng)的字符
???return ascii_char[int(gray / unit)]
if __name__ == '__main__':

???# 打開并調(diào)整圖片的寬和高
???im = Image.open(IMG)
???im = im.resize((WIDTH, HEIGHT), Image.NEAREST)

???# 初始化輸出的字符串
???txt = ""
???# 遍歷圖片中的每一行
???for i in range(HEIGHT):
???????# 遍歷該行中的每一列
???????for j in range(WIDTH):
???????????# 將 (j,i) 坐標(biāo)的 RGB 像素轉(zhuǎn)為字符后添加到 txt 字符串
???????????txt += get_char(*im.getpixel((j, i)))
???????# 遍歷完一行后需要增加換行符
???????txt += '\n'
???# 輸出到屏幕
???print(txt)
???with open(OUTPUT, 'w') as f:
???????f.write(txt)

直接粘貼即可,只需要在文件夾中導(dǎo)入一張圖片重命名為IMG.jpg。運(yùn)行結(jié)果會生成一個名為T.txt的文件。

原圖:

生成文件圖:

到此這篇關(guān)于如何利用python實(shí)現(xiàn)圖片轉(zhuǎn)化字符畫的文章就介紹到這了,更多相關(guān)python字符畫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python中request庫的各種用法詳細(xì)解析

    Python中request庫的各種用法詳細(xì)解析

    本文詳細(xì)介紹了Python的requests庫的安裝與使用,包括HTTP請求方法、請求頭、請求體的基本概念,以及發(fā)送GET和POST請求的基本用法,同時,探討了會話對象、處理重定向、超時設(shè)置、代理支持等高級功能,幫助讀者更高效地處理復(fù)雜的HTTP請求場景,需要的朋友可以參考下
    2024-10-10
  • python多線程如何獲取有序結(jié)果

    python多線程如何獲取有序結(jié)果

    在Python中,多線程編程是一個常見需求,尤其是在處理I/O密集型任務(wù)時,然而,多線程環(huán)境下保持任務(wù)執(zhí)行結(jié)果的順序通常較為復(fù)雜,為了解決這一問題,可以通過封裝一個功能來確保即使在多線程環(huán)境下,任務(wù)的執(zhí)行結(jié)果也能按照一定的順序進(jìn)行收集和處理
    2024-09-09
  • 淺談Pycharm調(diào)用同級目錄下的py腳本bug

    淺談Pycharm調(diào)用同級目錄下的py腳本bug

    今天小編就為大家分享一篇淺談Pycharm調(diào)用同級目錄下的py腳本bug,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • python-視頻分幀&多幀合成視頻實(shí)例

    python-視頻分幀&多幀合成視頻實(shí)例

    今天小編就為大家分享一篇python-視頻分幀&多幀合成視頻實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • 8種Python異常檢測算法總結(jié)

    8種Python異常檢測算法總結(jié)

    異常檢測是通過數(shù)據(jù)挖掘方法發(fā)現(xiàn)與數(shù)據(jù)集分布不一致的異常數(shù)據(jù),也被稱為離群點(diǎn)、異常值檢測等等。本文為大家整理了8個常見的Python異常檢測算法,希望對大家有所幫助
    2023-02-02
  • python之yield和Generator深入解析

    python之yield和Generator深入解析

    這篇文章主要介紹了python之yield和Generator深入解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-09-09
  • Matplotlib之解決plt.savefig()保存多張圖片有重疊的問題

    Matplotlib之解決plt.savefig()保存多張圖片有重疊的問題

    這篇文章主要介紹了Matplotlib之解決plt.savefig()保存多張圖片有重疊的問題,具有很好的參考價值,希望對大家有所幫助,
    2023-09-09
  • 使用虛擬環(huán)境實(shí)現(xiàn)Python版本和依賴庫的兼容

    使用虛擬環(huán)境實(shí)現(xiàn)Python版本和依賴庫的兼容

    這篇文章主要介紹了使用虛擬環(huán)境實(shí)現(xiàn)Python版本和依賴庫的兼容的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • Pandas:DataFrame對象的基礎(chǔ)操作方法

    Pandas:DataFrame對象的基礎(chǔ)操作方法

    今天小編就為大家分享一篇Pandas:DataFrame對象的基礎(chǔ)操作方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • pip安裝指定版本的tensorflow的實(shí)現(xiàn)

    pip安裝指定版本的tensorflow的實(shí)現(xiàn)

    本文介紹了如何使用pip安裝指定版本的TensorFlow,包括CPU版本和GPU版本的安裝方法,同時,文中也提到了使用阿里國內(nèi)鏡像源加速下載的方法,以及在安裝GPU版本時需要檢查CUDA和cuDNN的兼容性的注意事項(xiàng),感興趣的可以了解一下
    2024-10-10

最新評論

黑龙江省| 宜都市| 菏泽市| 错那县| 鄯善县| 凌源市| 昂仁县| 通江县| 峡江县| 项城市| 定州市| 滦南县| 石门县| 乌审旗| 德惠市| 长治县| 贡山| 会理县| 洞口县| 兴和县| 宁强县| 孙吴县| 西和县| 博爱县| 巴里| 文昌市| 鸡东县| 津市市| 涿鹿县| 东辽县| 陇川县| 通渭县| 鄂托克旗| 长沙市| 玉屏| 巴林左旗| 遂川县| 邛崃市| 安龙县| 肇州县| 泰宁县|