主頁 > 知識庫 > python實(shí)現(xiàn)圖片轉(zhuǎn)字符畫的完整代碼

python實(shí)現(xiàn)圖片轉(zhuǎn)字符畫的完整代碼

熱門標(biāo)簽:柳州正規(guī)電銷機(jī)器人收費(fèi) 鎮(zhèn)江人工外呼系統(tǒng)供應(yīng)商 騰訊地圖標(biāo)注有什么版本 高德地圖標(biāo)注字母 深圳網(wǎng)絡(luò)外呼系統(tǒng)代理商 千呼ai電話機(jī)器人免費(fèi) 外呼系統(tǒng)前面有錄音播放嗎 申請辦個(gè)400電話號碼 400電話辦理費(fèi)用收費(fèi)

前言

最初是在實(shí)驗(yàn)樓看到的一個(gè)小實(shí)驗(yàn)

實(shí)驗(yàn)樓-Python 圖片轉(zhuǎn)字符畫

原文是需要通過命令行運(yùn)行程序

這里改為直接運(yùn)行,需要固定一些參數(shù)

運(yùn)行平臺: Windows

Python版本: Python3.6

IDE: Sublime Text

1、實(shí)驗(yàn)準(zhǔn)備

pillow庫的安裝

pip install pillow


2、實(shí)驗(yàn)原理

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

最終顯示的是黑白色的字符畫,那么彩色的圖片怎么轉(zhuǎn)換成黑白的呢?這里就需要了解灰度值的概念了。

span style="font-size:16px;">灰度值:指黑白圖像中點(diǎn)的顏色深度,范圍一般從0到255,白色為255,黑色為0,故黑白圖片也稱灰度圖像。/span>

我們利用下面的公式將像素的RGB值轉(zhuǎn)換成灰度值:

span style="color:#ff0000;">gray = 0.2126 * r + 0.7152 * g + 0.0722 * b/span>

用不同的字符代表不同的灰度值,字符的種類和數(shù)量可以根據(jù)自己需要的效果進(jìn)行調(diào)整,最好從前往后可以看到明顯的變化,最后一個(gè)字符為空格符最佳:

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

3、完整代碼

#-*- coding:utf-8 -*- 
from PIL import Image 
 
IMG='D:\Code\python\\test1\\ascii_dora.png' 
 
WIDTH=60 
HEIGHT=45 
 
ascii_char = list("$@B%8WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~>i!lI;:,\"^`'. ") 
 
#將256灰度映射到70個(gè)字符上 
def get_char(r,g,b,alpha=256):#alpha透明度 
 if alpha==0: 
  return ' ' 
 length=len(ascii_char) 
 gray=int(0.2126*r+0.7152*g+0.0722*b)#計(jì)算灰度 
 unit=(256.0+1)/length 
 return ascii_char[int(gray/unit)]#不同的灰度對應(yīng)著不同的字符 
 #通過灰度來區(qū)分色塊 
 
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) 
 #寫入文件
 with open("output.txt",'w') as f: 
  f.write(txt) 

4、結(jié)果

總結(jié)

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

您可能感興趣的文章:
  • python實(shí)現(xiàn)圖片轉(zhuǎn)字符畫
  • Python 實(shí)現(xiàn)圖片轉(zhuǎn)字符畫的示例(靜態(tài)圖片,gif皆可)
  • 基于python實(shí)現(xiàn)圖片轉(zhuǎn)字符畫代碼實(shí)例
  • Python實(shí)現(xiàn)圖片轉(zhuǎn)字符畫的代碼實(shí)例
  • 一百行python代碼將圖片轉(zhuǎn)成字符畫
  • Python將圖片轉(zhuǎn)換為字符畫的方法
  • python Opencv將圖片轉(zhuǎn)為字符畫
  • Python實(shí)現(xiàn)圖片轉(zhuǎn)字符畫的示例
  • Python實(shí)現(xiàn)圖片轉(zhuǎn)字符畫的示例代碼
  • 從零學(xué)python系列之教你如何根據(jù)圖片生成字符畫
  • Python簡單實(shí)現(xiàn)圖片轉(zhuǎn)字符畫的實(shí)例項(xiàng)目

標(biāo)簽:海南 烏蘭察布 郴州 合肥 烏蘭察布 大慶 平頂山 哈爾濱

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《python實(shí)現(xiàn)圖片轉(zhuǎn)字符畫的完整代碼》,本文關(guān)鍵詞  python,實(shí)現(xiàn),圖片,轉(zhuǎn),字符,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《python實(shí)現(xiàn)圖片轉(zhuǎn)字符畫的完整代碼》相關(guān)的同類信息!
  • 本頁收集關(guān)于python實(shí)現(xiàn)圖片轉(zhuǎn)字符畫的完整代碼的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章