有一些不错的免费的“图像到ASCII艺术”转换站点,例如:ASCII-art.org
这样的图像转换算法如何工作?
, 。, WW @ WW ,W,:W * .W。 #WW @WW WW# W WW.WWW WW:W W.WW * WWW#WW @ W *:WW.WWWWWWW @ WWW @ W# + *#WW#WWWWWWWWWWWWWWW#W W#@WWWWWWWWWWWWWWWWWWW W WW WWWWWWWWWWWWWWWWWWWW W WW WWWWWWWWWWWWWWWWWWWW @ W# ,WW.WWWWWWWWWWWWWWWWWWWWWWW WW @ WWWWWWWWWWWWWWWWWWWWWWW :WWWWWWWWWWWWWWWWWWWWWWWWWWWW: @ WWWWWWWW @ WWWWWWW @@ WWWWWW。 W * WWWWWW :::: @@ WWW :::::#WWWWW WWWWWW @ :::+ *::: @ WWWW WWWWW @:*:。::。,。:。:WWWW @WWWW#:。:::。。::#:@ WWW :万维网@:#。:::WWWW:@WWWW WWW#*:W @ * @ W。W:#WWW #WWWW:@ :: :: * WWWW W @ WW * W。::,。:::::: + @@ WW#, WWWW ## ,,。:。:::。:。。万维网:, @ WWW @:W .. :::::#。:WWWW WWWW :: * ..:。::。,。:WWWW WWWW :::。:。:::::,@ WW @ WWWW:。:,::,,:WW, 。:#:,:* W +。,:::。,:@ W ::。:W @ ,,, W:。,, :: * @ * :,。:@W。,, @ + ..... *:::。。#WWWWW::。#:.... +, @ ... ::: *:,,::WWWWWWW,,* :::: ..,# :... :::::: W :, @W :::: * W。:W ::::: ......# @@@@@@@@@@@@ W @@@@@ W @@@@@@@@@@@@@@@@@@@@@@@@@@@:
总体概念很简单:
可以为每个可打印字符分配一个近似的灰度值;例如,“ at”符号@在视觉上明显比“ plus”符号暗+。效果会有所不同,具体取决于实际使用的字体和间距。
@
+
根据所选字体的比例,将输入图像分为宽度和高度恒定的矩形像素块(例如,一个矩形,宽4像素,高5像素)。每个这样的块将在输出中成为一个字符。(使用刚刚提到的像素块,一个240w-x-320h的图像将变成64行,每行60个字符。)
计算每个像素块的平均灰度值。
对于每个像素块,选择一个其灰度值(来自步骤1)与像素块平均值(来自步骤3)的近似值良好的字符。
这是最简单的练习形式。当打破像素块的候选者之间的联系时,更复杂的版本还将考虑字符的实际 形状 。例如,对于似乎具有左下至右上对比度特征的像素块,/“斜线”(\)比“反斜线”()更好。
/
\