本文關(guān)鍵闡述了運(yùn)用Python實(shí)現(xiàn)圖片轉(zhuǎn)字符畫(huà),要把圖片轉(zhuǎn)字符畫(huà),必須要先界定1個(gè)字段名,用于和灰度級(jí)做投射,將照片每一個(gè)象素的RGB值轉(zhuǎn)化成1個(gè)灰度級(jí),把它相對(duì)應(yīng)的標(biāo)識(shí)符導(dǎo)出就得到了字符畫(huà)
序言
相信大家在網(wǎng)上常??吹接行┤苏宫F(xiàn)出各種各樣字符畫(huà),對(duì)于這些色彩斑斕的全球而言,我們平時(shí)看到的就是某些超清的彩色圖片,有時(shí)候再來(lái)一個(gè)粗糙黑白字符畫(huà),還是比較緩解疲勞的。喜愛(ài)不要忘記個(gè)人收藏、關(guān)心、關(guān)注點(diǎn)贊。
字符畫(huà)的基本原理
這類(lèi)字符畫(huà)的基本原理也非常簡(jiǎn)單,也可以把每一個(gè)標(biāo)識(shí)符看作是一個(gè)很大的象素,一個(gè)字節(jié)能夠意味著一個(gè)顏色,標(biāo)識(shí)符各種越大,可展現(xiàn)的色調(diào)越大,字符畫(huà)就更有層次感。
灰度級(jí)和RGB
灰度級(jí)就是指黑白圖像中心點(diǎn)顏色深度,它范疇是0-255,乳白色為255,灰黑色為0,深顏色處于二者之間。
RGB是三原色三色調(diào),通過(guò)各種的累加可以得到深顏色。
要把圖片轉(zhuǎn)字符畫(huà),必須要先界定1個(gè)字段名,用于和灰度級(jí)做投射,將照片每一個(gè)象素的RGB值轉(zhuǎn)化成1個(gè)灰度級(jí),把它相對(duì)應(yīng)的標(biāo)識(shí)符導(dǎo)出就得到了字符畫(huà)。
RGB轉(zhuǎn)灰度級(jí),有一個(gè)變換學(xué)公式計(jì)算:
gray=(2126*r+7152*g+722*b)/10000
編碼實(shí)戰(zhàn)演練
我隨便選取了一張照片:
我的目標(biāo)是轉(zhuǎn)化成下邊那樣:
依據(jù)之上變換工作原理,大家直接用編碼:
fromPILimportImage char=list('M3NB6Q#OC?7>!:–;.') defget_char(r,g,b,alpha=256): ifalpha==0: return'' grey=(2126*r+7152*g+722*b)/10000 char_idx=int((grey/(alpha+1.0))*len(char)) returnchar[char_idx] defwrite_file(out_file_name,content): withopen(out_file_name,'w')asf: f.write(content) defmain(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) foriinrange(height): forjinrange(width): text+=get_char(*im.getpixel((j,i))) text+=' ' print(text) write_file(out_file_name,text) if__name__=='__main__': main('dance.png')
程序流程構(gòu)思:
界定1個(gè)二維數(shù)組,這一二維數(shù)組里邊的標(biāo)識(shí)符能夠隨便寫(xiě)。
解析圖片,將照片里邊的每一個(gè)像素?cái)?shù)分析成RGB值。
依據(jù)大家上邊的公式計(jì)算,將每一個(gè)像素?cái)?shù)轉(zhuǎn)化成二維數(shù)組里邊的一個(gè)字節(jié)。
把所有像素?cái)?shù)相對(duì)應(yīng)的標(biāo)識(shí)符拼湊下去,就完成變換。
匯總
圖片轉(zhuǎn)字符畫(huà),轉(zhuǎn)化的設(shè)計(jì)原理構(gòu)思還是很簡(jiǎn)單的,完成也并不復(fù)雜,你們可以出手試一試!
綜上所述,這篇文章就給大家介紹到這里了,希望可以給大家?guī)?lái)幫助。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/129045.html
摘要:文章鏈接關(guān)于圖片轉(zhuǎn)字符畫(huà),相信大家都不陌生,經(jīng)常出現(xiàn)在個(gè)超有趣的項(xiàng)目中。今天我也來(lái)實(shí)踐這個(gè)有趣的項(xiàng)目,更進(jìn)一步的是把這個(gè)功能做成一個(gè)在線的網(wǎng)站,直接上傳圖片生成字符畫(huà),在線預(yù)覽可以讓更多的人來(lái)體驗(yàn)。至此,生成字符畫(huà)的腳本完成了。 文章鏈接:https://mp.weixin.qq.com/s/yiFOmljhyalE8ssAgwo6Jw 關(guān)于python圖片轉(zhuǎn)字符畫(huà),相信大家都不陌生...
本文關(guān)鍵闡述了如何運(yùn)用python完成圖片轉(zhuǎn)化字符畫(huà),文章內(nèi)容緊扣主題進(jìn)行詳盡的基本介紹,具有很強(qiáng)的實(shí)用價(jià)值,必須的朋友可以學(xué)習(xí)一下 序言: 字符畫(huà):字符畫(huà)是一連串標(biāo)識(shí)符的搭配,也可以把標(biāo)識(shí)符看作較為大塊清晰度,一個(gè)字節(jié)能主要表現(xiàn)一個(gè)顏色,標(biāo)識(shí)符的類(lèi)型越大,能夠表現(xiàn)得色調(diào)也就越多,照片還會(huì)更有層次感。 假如他們想要手工制作制作出字符畫(huà),必須要有過(guò)硬的美術(shù)基礎(chǔ)知識(shí),次之還需要耗費(fèi)大量時(shí)間和...
摘要:一幅圖像全部轉(zhuǎn)成字符序列后,就可以直接在控制臺(tái)輸出了。讀取視頻使用了,并直接用它提供的方法轉(zhuǎn)了灰度圖,在之前的文章中也有過(guò)介紹,計(jì)算機(jī)視覺(jué)開(kāi)發(fā)利器這一步比較重要,因?yàn)橛械囊曨l分辨率很高,直接一個(gè)像素轉(zhuǎn)一個(gè)字符的話(huà)量太大,所以先縮小圖片。 今天分享的這段代碼,看起來(lái)沒(méi)啥實(shí)際用處,而且有些反潮流,因?yàn)楝F(xiàn)如今大家看視頻都追求更高分辨率的超清畫(huà)質(zhì),而我們這個(gè),是 一個(gè)超不清的視頻播放器 : 在...
摘要:最近花了幾天時(shí)間,做了一個(gè)圖片轉(zhuǎn)字符畫(huà)的工具,一開(kāi)始想做成用服務(wù)器來(lái)生成圖像的形式,但是后來(lái)發(fā)現(xiàn)可以不依賴(lài)服務(wù)器生成圖片,順便還能把項(xiàng)目托管到上,因此就把項(xiàng)目做成了純前端的形式。 最近花了幾天時(shí)間,做了一個(gè)圖片轉(zhuǎn)字符畫(huà)的工具,一開(kāi)始想做成用服務(wù)器來(lái)生成圖像的形式,但是后來(lái)發(fā)現(xiàn)可以不依賴(lài)服務(wù)器生成圖片,順便還能把項(xiàng)目托管到 Github Pages 上,因此就把項(xiàng)目做成了純前端的形式。 ...
閱讀 928·2023-01-14 11:38
閱讀 902·2023-01-14 11:04
閱讀 759·2023-01-14 10:48
閱讀 2065·2023-01-14 10:34
閱讀 968·2023-01-14 10:24
閱讀 844·2023-01-14 10:18
閱讀 512·2023-01-14 10:09
閱讀 591·2023-01-14 10:02