X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: f996b,efeed45cd1b3cdda,start X-Google-Attributes: gidf996b,public X-Google-ArrivalTime: 2002-01-31 12:54:23 PST Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!newsfeeds.belnet.be!news.belnet.be!uni-erlangen.de!fu-berlin.de!news.uni-stuttgart.de!rz.uni-karlsruhe.de!news.rz.uni-karlsruhe.de!not-for-mail From: Markus Gebhard Newsgroups: alt.ascii-art Subject: image2ascii edge detection Date: Thu, 31 Jan 2002 21:55:10 +0100 Organization: University of Karlsruhe, Germany Lines: 342 Message-ID: <3C59AF2E.92AC8B89@rz.uni-karlsruhe.de> NNTP-Posting-Host: wn4-jarjar.wn4.uni-karlsruhe.de Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Trace: news.rz.uni-karlsruhe.de 1012510460 3883 172.20.12.141 X-Complaints-To: usenet@rz.uni-karlsruhe.de X-Mailer: Mozilla 4.79 [en] (Win98; U) X-Accept-Language: en Xref: archiver1.google.com alt.ascii-art:14302 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,..