Settings

The page will reload to apply your changes.
Theme

ASCII Art Font

ASCII Art Menu

Original Usenet thread from alt.ascii-art, started 31 Jan 2002.
 _   _                     _        _             _     _           
| | | |___  ___ _ __   ___| |_     / \   _ __ ___| |__ (_)_   _____ 
| | | / __|/ _ \ '_ \ / _ \ __|   / _ \ | '__/ __| '_ \| \ \ / / _ \
| |_| \__ \  __/ | | |  __/ |_   / ___ \| | | (__| | | | |\ V /  __/
 \___/|___/\___|_| |_|\___|\__| /_/   \_\_|  \___|_| |_|_| \_/ \___|
image2ascii edge detection

image2ascii edge detection

alt.ascii-art · 1 message · 31 Jan 2002
Hi,

Recently there was a discussion about edge tracing and edge detection
algorithms for automatic image2ascii conversion. I have already
presented some results from a simple edge _tracing_ algorithm. They were
quite funny, but real edge _detection_ requires a little bit more
effort.
Well, although I have very few time, I have managed to dig out some edge
detection code from my earlier investigations and implemented the worlds
very first (as far as I know) _real_ edge _detection_ image2ascii
algorithm.

It is not very easy to use and will only work well on few images.
However the results may be useful if the image contains many lines and
edges. Here is an example:

1.edge _detection_:
                       . .
                       | | , .  .
               .   ||  |       _,-'
               ` |_| , -| _| |,'  :,'-
           ` ||`.,'\ /   - |,',.'.  -
          /   |  |  \L,-| ,' /  -''': _.,
        .,  .   ,'   /   '| ,' L ,-',- =. .-
       - /: -.    | /' : . ./-   ,')_.-,- '--
     ..:' .- .\-/'\ ,- \ .'     -  |,  _,' .-/
      .  --     .' '\  /)','  |  |_- ,  /'  /
      .| . :  / '   | ''  ,  ,',\'_ / <  ,.' .'
     \   '\^, |    | ,' ,    |/ /'/ .' '' /.-'/'
       ._`.  -   | | '/'     ||/    '_/ ,'  _/-'
   '-.. _'  . \,\  | /   \` / / , ' ,-- .,,'/    _
   _   . ''  -     |_  ,.'  . .'/' ,--''---= _,-'
   . -'..     ^-,`. |','/  /- ,' ,'       __ _
     -.. '           .\'  ,'/' ,_|   . _/:
     = .'   _,_ /    .   , / _-,--'''''   ''':''
     ..--`''   -^=  _)'_  / ' /  __.     ..,.
                   --= ',  .,''`'   --- '--...'
                      -.'.,'             --  `-
                      |  /                  '
                      |||
                      | |
                      |||
                      |\|
                      \ |
                      || |
                _    ,' . .
                 --':'`:--  ''..
2. Whereas edge _tracing_:
                       /_/
                   /\  | / / /  ___
                  / |  || /| |,'_  \
              /\,'  _\ \|_||_| |_|  \
           O / _  _|_|__|_       _ |_
          O / / || \   _|_|_    |_|_ `-./
        /\_/ |_/  \_| |_| |_|     / |   / /
       /                         |_/ _ |_/_\
      /     _        __        __   |_|  | \ /
      |   _| \ _    |__|    _ |__|       |_ /|
      \  |_|`.| \          | | _        _  \_|\
    /\_|      /  |_     _  |_||_|      |_|_    \
     |       |__/| |_ ,' | _       _     |_|  __\
    /__ _        / | |  _|/ |     |_|        |__|
      _| `-.    |__|_|_/ /  |   _  _______    __/
   O / _\   `.  _       /  /  _|_||_______|_,'
    / |__/\___||_|_    |  / ,' |        _ |____
     |           |_|   |_/ / ,'      __|_|   __\
     ``--..________   _   |_/    _  |__|    |_
                   `.|_|    ,--'' \_____    _ \
                     \    ,'            `-./ \
                      |  /
                      | |
                      \ |
                       ||
                      / |
                      | |
                     _|  `-.
                  _,'       \
                 /___________\
3.Four pixel per character greyscale conversion:
                       . .
                   ,.. | . .`.  .
               .  `;;  `` J..r ..`.`
              :, :.;....| .; :.: ...``
           ` :.`.o:j J  c: 1.=.u:`..`
          ..J..  | Jo=.^t .%.r`v` ` .` `.
        .:.`,. :,0``4O: x:J J'.i.,: J:.,...`
       .,,3c``..:`;.| ouyJr.|`w J` ,..^.`.:``
     ....7,`v,`=z.|,x' \Ja:,:.vJ``.|. ..`` .`.
      ..=`7, `u..`:.|  Jx`:.r3|  |,r.`J.,`` .`
      .... z. c  xJo|.u!.:a| c`.3:.n:.4:..`` .`
    ,. `..|^,.;  9`,u2:..4k: |r 2``.J:.: .J```.`
      `..`?;.c` .; :Js2: .C=`||,`.O2:.:.,` ..J^`
    `....``...|..` . 0  .z: j.f`..%`.?=v.c=^J  .:.
       . ```::.j%  ,.x .:%  .`..;`..7'``^^`.;.:^`
   ..```.    V0^%,..,J..%  ,ja?' .^      ...c`
    .`...``   `,.`je,`G%  ,.O` ..:......a:`
     ..:.`.....,;.  `,31 ..+ .`.`^`````   ``````
     `````     `^?sa,`.X..! ..&...J,.   .,:?.
                   `Uu.'.l..f:     .``=|.``..``
                     .`.Z&2:            `^^.  `
                      `JZ!
                      `JD
                      ;JD
                      .=X
                      `J4
                      ``4.
                      .J4;
                    ..:.3A...
                 `````````%`
4. Now manualy pasting 1. to the foreground of 3.:
                    . .
                ,.. | | ,`.  .
            .  `||  |` J..r _,-'`
           :` |_|.,.-| _| |,' .:,'-
        ` ||`.,'\ /  c- |,',.'...-
       /.J.|  | J\L,-| ,'./`v-''':`_.,
     .,.`.. :,'``4/: x'| ,'.L.,-',-.=...-
    -,/:c-...:`|./'o:y.r./-w J,')_.-,-.'--
  ..:'7.-v.\-/'\,,- \J.',:.vJ-`.|, ._,' .-/
   ..=--, `u..':'\  /)','r3|  |_-.,J./'` /`
   .|.. :. / 'xJo|.''.:,| ,',\'_n/.<:.,.' .'
 ,\ `.'\^,.|  9`|u,'.,4k: |/ /'/..'.''./.-'/'
   `._`.;.-` .| |J'/' .C=`||/`.O2'_/.,' ._/-'
'-..._'`...\,\` | /  .\` /./`,.'`,--v.,,'/  .:_
_   . ''`:-.j%  |_x ,.'  .`.'/'.,--''---=;_,-'
..-'..    V^-,`..|','/  /-a,' ,'      .__c_
 .-...'`   `,.`je,.\'  ,'/' ,_|....._/:`
  =..'`.._,_,/.  `.31 ,./ _-,--'''''   ''':''
  ..--`''   -^=sa_)'_../ './..__..   ...,.
                --=.',l..,''`'  .---|'--...'
                  .-.'.,'            `--. `-
                   |JZ/                  '
                   |||
                   |J|
                   |||
                   |\|
                   \`|.
                   ||4|
             _   .,'..A...
              --':'`:--%`''..

Here comes another example:
1.edge _detection_:

                               _    '"''`'' .= _
                              '          -' ___-' .
                       _ ..              /-'  ___ .  _
                        -  `. >     \\` ,'            `.
                           ' _ -'     ''  :.     '  ,- '.
                        ' :'-.:_    '  \ :       . _____ ``
                   __   ':_: ._  ._ .  '     ,= -::,.... `
                _/:  __  ..._ -: /      _,. :  = . - ----=_-..
                    /   ,'--.|/                  ...     _  \ \
                   |  ,_                             --  .   |'.
                   |                                     `| |||
                   |    ,                                  | |
                        _/                                 | |
                    \ `                                | | | ||
                       -      --'  .._          ..---  | '
                              ,..< .< .       _, =\=.  |   |
                      \     ---   - ` ^-     '  -- . ' '    '
                               ' `-''          '  '
                       -


                                     |
                                     '`''.,-'
                                               _,'
                           \      '`--------- /    ,
                          / `.       -,..__,-'
                         /    `.
                        /       `-.            ,-|
                      ,'           `-,__    _,'  '-.._
                   _,'                  `'''          `-.._
                ,,'                                        ``-..___
             ,-'                                                   `--._
         ,,-'
      ,-'
   ,-'
 ,'
,'

2.edge _tracing_:
                                  ____________
                               ,-':::___:::___\ _
                             ,'::::,'   |:|    /:\__
                         ,--':::::|  ___|:_\    `.::`.
                        /:::::::::/ /::::|_ O     `.::\
                       /::::::::,'  |::::::\        \::`.
                       |:::::::/   /::::::|___      _|:::\
                     ,':::::::|_____|_::::::::`.__ /:::::|_
                    /:::::::::::::__/ `-._________\ \::::::\
                   /_::::::::::,-'                   \::::::\
                   | |:::::::,'                       `.:::::\
                   \ |::::::|                           |::::|
                     |:::::::\                         /:__::/
                     |:::::::|                         |/  ||
                    /:::::::::`-.____                  \   \/
                     |:::::::::::::::`.       _______
                     |:::::::::::::_:::\     /:_:::::\
                     \::::::___:::/ `-./     \/ `-.__/
                      \::::/   \_/
                       `-.|
                          |\          _
                          |:`.       /:\
                          \:::`-.    |::`._
                           |:::::`.  \_____\
                           |:::::::\_________
                          /::::::::::::::::::\
                         /::::::::::::::::,-'
                        /:::::::::::::__,'      _/
                      ,':::::::::::::|____,,--'':|__
                    ,'::::::::::::::::::::::::::::::`-.__
                ,--':::::::::::::::::::::::::::::::::::::`-.____
             ,-'::::::::::::::::::::::::::::::::::::::::::::::::`-.____
          ,-'::::::::::::::::::::::::::::::::::::::::::::::::::::::::::\
       ,-':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::|
    ,-'::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::|
  ,':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::|
 /:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::|
/::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::|
|::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::|
|::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::|
|::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::|
|::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::|
|::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::|
|::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::|
|::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::|
``--..____________________________________________________________,,--''

3. The same image with 4 pixel per character greyscale conversion:
                                  ...
                               ..caczv?70?vccxo.
                            .``=xxzz=:`.|v:.```?==..
                        ......:zOnx````.4oZ:`....::,..
                      .`::`cu4nxzc:`.&.sa+:...````.zvvs.
                      `.,.,;=zOVv:`.JSSZQQxc```  ```?===.
                     `,;=u,?vxa:``..4OxdXQc``   ......azoz:
                    .,`:cx4QQs,``...:=JQSno...c```..a:aozv,
                 ....,.:czxuxOvvoxwZz:JOXZZX#Zxnoa.`?vOZZxx:..
                   .rJzZX#M#QQZOc::```````````::`...`Jz=:aZQo``
                   :`Jz4ZXS6v=:````                 `:=?4QSSk;`.
                   :.:?4XQOz:``....`                   `z0dXX|.
                   ``.z4QXOc:,````.```                 Jxv=xO|`
                   ..azwZwv==:,.`..```                `Jx: zz:
                    :?OX#Ozcz:,`.`.`                  .J:.`J:;
                    ``JZXv==:::==::a....     ....,```....` `.`
                    ,Qs4X=couugggQggmmn...`..uggBmQQga.``  .``
                     7#Z=:::?9MB3T!`?0vv``  `:%`9V:JF'```   `
                    ` :Xc`,````7V=:```````     ```:`   `
                       ?|``...`       .`..
                         `.:,..`     ....`            `
                         .`z:,..`   ..=:``           .`
                          `zvo:......uaaa..... .    ..`
                          `=z4xo....`J9MMHP"^   ....``
                           ;z4ZO=O:,,.`````    ..`````
                          .p?4ZQo`3@MMMMMQg@VV:  ...`
                         .MMmeQQQx::3##Qaaaa2:    `
                        .MMMMMMmQnxz::?77^^``   .,
                      ..qMMMMMMMMmQs:,.`      .JMl
                    ..aMMMMMMMMMMMMMmQa......aMMMBma..
                  .JgMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMBBma..
               .aMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMma....
            .JMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMma,
        ..gMMMMBMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
     ..gMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
  ..MMMMMMMMMMMBMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
 .MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
JMMMMMMMMMMMMMMMMMMMMMMMBMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMBMMMMMMMMMMMMMMMMBMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMBMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMBMMMMBMMMMMMBMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMBMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMBMMMBMMMMMMMMMMBMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMBMBMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMBMMMMMMBMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMBMMMMMMMMBMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM

4. Now manualy pasting 1. to the foreground of 3.:
                                  ...
                               ..cac'"''`''cc=o.
                            .`'=xxzz=:`.|-:.iii-'=..
                       _......:zOnx````.4/-:`....::,..
                      .`-:``.4>xzc:`\\:s,':...````.zvv`.
                      `.,.,;=_O-':`.JS''QQ:c```  '``,=='.
                     `,;'u;'-.::``..'Ox\X:c``   ......__o`:
                   _.,`:':_:Q.,``...:=J'Sno..,=`-::,.:.oz`,
                _/:..,.:c..._O-:o/wZz:JO_,.X:Zx=o..-?----=_-..
                   ./JzZ,'--.|/Oc::```````````::`...`Jz=:_ZQ\`\
                   |`J,_ZXS6v=:````                 `-=?4.SSk|'.
                   |.:?4XQOz:``....`                   `z`|X|||
                   |`.z4,XOc:,````.```                 Jxv=|O|`
                   ..azw_/v==:,.`..```                `Jx: |z|
                    \?`X#Ozcz:,`.`.`                  .|:|`|:||
                    ``J-Xv==::-='::.....     ....,---..|.' `.`
                    ,Qs4X=couu,..<g.<m....`..u_,B=\=.a.|`  |``
                     7\Z=:::---B3T-``0^-``  `:%`--:.F'`'`   '
                    ` :Xc`,````'V`-''`````     '``:`   `
                       -|``...`       .`..
                         `.:,..`     ....`            `
                         .`z:,..`   ..=:``           .`
                          `zvo:......|aaa..... .    ..`
                          `=z4xo....`J`MM.8-'   ....``
                           ;z4ZO=O:,,.`````    .,'````
                          .\?4ZQo`'`---------V/  ..,`
                         ./M`.QQQx::3-,..__,-:    `
                        ./MMMMM.Qnxz::?77^^``   .,
                      ../MMMMMMMM-.s:,.`      .,-|
                    ..,MMMMMMMMMMMMM-,_......,MMM'-...
                  ._,MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMB`-...
               .,MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM-.....
            .,-MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM--.,
        .,,-MMMBMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
     .,-MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
  .,-MMMMMMMMMMBMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
 ,MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
,MMMMMMMMMMMMMMMMMMMMMMMBMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMBMMMMMMMMMMMMMMMMBMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMBMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMBMMMMBMMMMMMBMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMBMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMBMMMBMMMMMMMMMMBMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMBMBMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMBMMMMMMBMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMBMMMMMMMMBMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM

Well, maybe the results can be further improved. But I have one problem
with all this: There are now so many image2ascii algorithms and options
- it is hard to pick the right one for a certain image. I guess I will
have to compile a document with example images and sample results with
various settings...

However it will still take a few weeks until you all will be able to
test the new features in the next release of JavE. I am very busy moving
to a different flat and there also is my master thesis... 

Markus
-- 
 \-/         http://www.jave.de    O_< Get JavE now!    \-/
J|a|v|E                           /|                   J|a|v|E
 /-\      Ascii-Art for eyeryone  / \   - for free!     /-\

About this thread. These messages were posted publicly to the newsgroup alt.ascii-art in 2002 and are mirrored here unchanged as part of the Historic Archives – only email addresses are masked. The artwork and text belong to their original authors: if you copy a piece, keep the artist's initials or signature intact and credit them where you can. Are you one of the authors? Contact us to get your posts attributed, connected to your artist profile, or removed.

Report this message

Help us keep the archive clean and accurate. Reports are reviewed by a person – nothing is changed automatically.

Help classify this post