一尘不染

ASCII Art图像转换算法如何工作?

algorithm

有一些不错的免费的“图像到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 @@@@@@@@@@@@@@@@@@@@@@@@@@@:

阅读 257

收藏
2020-07-28

共1个答案

一尘不染

总体概念很简单:

  1. 可以为每个可打印字符分配一个近似的灰度值;例如,“ at”符号@在视觉上明显比“ plus”符号暗+。效果会有所不同,具体取决于实际使用的字体和间距。

  2. 根据所选字体的比例,将输入图像分为宽度和高度恒定的矩形像素块(例如,一个矩形,宽4像素,高5像素)。每个这样的块将在输出中成为一个字符。(使用刚刚提到的像素块,一个240w-x-320h的图像将变成64行,每行60个字符。)

  3. 计算每个像素块的平均灰度值。

  4. 对于每个像素块,选择一个其灰度值(来自步骤1)与像素块平均值(来自步骤3)的近似值良好的字符。

这是最简单的练习形式。当打破像素块的候选者之间的联系时,更复杂的版本还将考虑字符的实际 形状
。例如,对于似乎具有左下至右上对比度特征的像素块,/“斜线”(\)比“反斜线”()更好。

2020-07-28