1920 words
10 minutes
Real ASCII Gallery - Edge Trace Filter

1️⃣ cd to src/edge_trace.


Terminal window
python contour.py ^
--image_path ../../resource/imgs/girl_with_pearl_earring.jpg ^
--canny1_min 160 --canny1_max 201 --canny1_step 20 ^
--canny2_min 240 --canny2_max 281 --canny2_step 20 ^
--dilate_iter 1 --erode_iter 0 --gb_sigmaX 0 --gb_size 5 ^
--contrast_factor 16 --contrast_window_size 8 ^
--invert_color
Terminal window
python edge_trace.py ^
--image_path ./contour/contour_180_260.png ^
--resize_factor 4 ^
--palette_path ../../resource/palette_files/palette_chars_consolab_fast.json ^
--match_method slow ^
--color_option original ^
--original_image_path ../../resource/imgs/girl_with_pearl_earring.jpg

Terminal window
python contour.py ^
--image_path ../../resource/imgs/girl_with_pearl_earring.jpg ^
--canny1_min 160 --canny1_max 201 --canny1_step 20 ^
--canny2_min 240 --canny2_max 281 --canny2_step 20 ^
--dilate_iter 1 --erode_iter 0 --gb_sigmaX 0 --gb_size 5 ^
--contrast_factor 16 --contrast_window_size 8 ^
--invert_color
Terminal window
python edge_trace.py ^
--image_path ./contour/contour_180_260.png ^
--resize_factor 4 ^
--palette_path ../../resource/palette_files/palette_chars_consolab_fast.json ^
--match_method slow ^
--color_option original ^
--original_image_path ../../resource/imgs/girl_with_pearl_earring.jpg ^
--invert_color

Terminal window
python contour.py ^
--image_path ../../resource/imgs/girl_with_pearl_earring.jpg ^
--canny1_min 160 --canny1_max 201 --canny1_step 20 ^
--canny2_min 240 --canny2_max 281 --canny2_step 20 ^
--dilate_iter 1 --erode_iter 0 --gb_sigmaX 0 --gb_size 5 ^
--contrast_factor 16 --contrast_window_size 8
Terminal window
python edge_trace.py ^
--image_path ./contour/contour_180_260.png ^
--resize_factor 4 ^
--palette_path ../../resource/palette_files/palette_chars_consolab_fast.json ^
--match_method slow ^
--color_option original ^
--original_image_path ../../resource/imgs/girl_with_pearl_earring.jpg

Terminal window
python joined_trace.py ^
--image_path ../../resource/imgs/girl_with_pearl_earring.jpg ^
--canny1 180 ^
--canny2 260 ^
--gb_size 5 ^
--gb_sigmaX 0 ^
--kernel_size 2 ^
--dilate_iter 1 ^
--erode_iter 0 ^
--contrast_factor 16 ^
--contrast_window_size 8 ^
--resize_factor 4 ^
--resize_method nearest_neighbor ^
--match_method slow ^
--palette_path ../../resource/palette_files/palette_chars_consolab_fast.json ^
--color_option original

====_. = __ _=' ___]=' .[]' == '=' __ =[ _' __""=-=' -[=,==_'='=-==___=---_=_ ==' _=_ -==_==
'[]' ' '''__, -___ _"'="' ']"'_=_' _==-__ _[=_===}==____- _ -=, _[' ' =====[=']__ _=}'[=="_==="' -= '""=+'-=_]
_,_[ =' __]___--=_= '"_[=-"==',__.__]'__'' ]='""_'=[[-_[[__-_=__'._" =+_ -'_="=''_'='__ '_''__=[[ '''_=_'"___"'=- ..- _=-_]+_ _____
=""' "___"]][_' '"' '"]"[-=' ===']-_=_' _____ __=__-_[__"+[]+=+_"'[==="' -+_'_==_=__ =_==[}_="__+][__ _''_['_''+ -+[= '==____-_ _--' -+_' '=='"_-
,_- ___]-"__="--"" '==_ ''__'"_'= ={.=]=,="'""===[]"= '[- '' -[_]==_]____ _==]__+=={==__'_="_'_===__=]==_ "}]===_=" '"[["'=]. [_ "-_"'
"" -['[''"'_ -[= _=[''"' _='==' __+==''_-''' _-=''=[]__[-'"'+]-'''"==[=''"==[_}['_==[]='[_'___]+=[["' __-==-_'="_=__ __==-'==-'' _
_-____]== '="= __ __'=_ -==_]. ____ _' =[ '__.,='' ='''[='" _[==_ _ __=]"=_'- ']]["=="'"' '==,__=" '_.[__ ]__=',_=,._' -+=
"']"'_=, -_=[ -==' '+==-[- __'=_=[='-__ '_[+ __"- +- _[' "' __['__+___ "'=+__[ ]+="''"-___'""=''' _=_ ''"'___''__"''=-'"=+_'''''"[ __''
'[''""'= .=]=[ _"__ -=-'"' "-,_"]'' '' '''" =' ___'' =""" __ '__]=]='__ _=' '_"''' _"=-"'' '"'' =_]. ._"=__ '"' _' "_=_
_=[ ___'[_+'['' _"'= '' ']'- "'=- '==_ _=[_='_=' "" '"[ "' _=' ]= _____=" ___ _- _= '==
]_= ""[_"' -====]],__ ____ - '='"=_ '' _' _, '=' '_====[[_ "_- _______= _=='""" '=""'[__['=_ ''
'_+_ -''"_ '["'==='__ _-=]=- __=- =___ ____ '' "'+_ __ '== ''='' "' ''"==-'' '' '___ '}_ "[][-="==_
' ['-=' '[-=_= '' +]= '" '"' _=' _=,__'__ =' '=''=- ______ _, '==' _=__ _=]' "]_
__[-__-___"==[ "-' '__[ __' -"'__'= ''+==''=''' '-' '' __+=""''"" -__ '"' ____==_ __ -,=' _[]_'-'==
___=[''' =_"[_,' -, _= '"[ '' =' '_ __'' _="'_._=_,__. '""=_ '_ "'=, __ '_ "___[_]],=='_
_+='[_ '='""[ _, ="' _ __ __ '[_''' _+"_-="=[="+"'' '"+_ '" ]=} '"[ -=-' ']]+="+++_ -=
"__ _[ '"-_[' ''-= __ '" '= ==' '' __ _=___=-'===._=__ ' -=. __ '' '" '"= '==_[_
-=]_'" ___]="-_- ="' -_ '_=' =_ '' _,+="""''' ''"'"' _' '' __=' __]='
' ____=__-'"==- -''_=_ _=__"'_'.,_ '"' __ _=_{______' ==_=.__ '-===, _' _____ =,_[]" __"
-, "=}_"'' "' _____"' ''=[ '"+-'' ___ =- _= __++-''"''''"""=-__ ''"=[}=-_ =__ __ __ -"=__=__ ""_]=_ ""[-'_ '"'
_'__ ="'_= '''=" =" =_- __.'"=___ '' __,=-''' '""=.__ =_'=[=__ '"=_ '= -[-_===['""'_=="=]__ '=[=]
-""'-++_'' __ _='=__ '' -==='"=_ ''"' __ __=""' '""=_"=__"+}+_ '"+_ "''' ==' '+=---"[_ '""[_==
'= __=- '[' '+=__ '_" __ _= '_ '],' _=__'' -__ '"=_=' "=_ ']_'__ ___' "._'.=-_
+___[- _- '' ''}' ']__ [' '" -' ']__ -"_="' '"' '"-_ '=_ '"_'[_ ']]== ___ _",
_=="]==__ '"' '"_ '"=""- _="' =- '' _='' '__ '=__ "=__' '["_ =' '' -''[
__ !-_-=_["__ '_ '- '' '"[ '=__'="+_ ]'[ _[_ ]_
===_..__""_=____ __ '' ==___ __ _=' _' ']_ '==_ '=_ =_" '= _="___ "'
'''' ]=' '''""]_ '' [-""__' '+ _=' '' '=, '=_ '"_ __ __ '+_ __ '' "''"", _
=' "__ ''___ _[__ -=_ _[' '___ _[= '"=_ ",[ '=_ [ -,[_ __ = +=
" =' __]= =__[' ==' _- [['" -=- ']' -_ ]'''" '"' _=_ '[ '=_ [_ -[['' '= ]_ '=
'"", ''' __=[=' "'''" _' -=_ .' '"' '=[ __ _='.__ _=' "==_'[ '_ '[ '+-" __'
__ _[ ==_' _ __- ___!+== '==+ _" __-+___ _[ '' '=_ _" '"=_']' __ -_"=[ _ '[''[_ == __==++==
=' ",=_, _[= ___[''__ =+_'==" __ _="' -=.__ '"_''=.====' , =.=__' "= ] '_ '_ ]_ ___ "=_=__'"
-[_-[ +" ]'_= =[=__=['']_ _-- _' _=' '"=___ '= _ "-[__ '___ '=="' ]_ [ ', ']_ ==' +- __]="-_
___ "=__ _==[___=}=]='==_=["'.' ___ _= ''"=__ ]_"[ __'""- ''""_ -="=_ __ ] ]_ '"- _= '-_=]_'
'=[- -+=+_ -[}===='_]'==='_['_ ]= ']- _[ '"=-' '=_[ '=_ _=+, '_-___ __ '_ __ '' _+_=+ ]-+['
-=_'==__'[[_ =,= '==_[ ='"= '=' ""__ ' '"_=' ._=_' _""' "'"==_ "[ __ __ '=''[_"' __ '==[ _[
-[='__-'"='_""="=- __]'+- -'' '' '= -[=_'___=' ''=_'[ '[ '' '_ '" == '[_] '-+=
_=-=']=' '_'__="== ']" _=- _.__ __ -= __ '=' '"_[=,____ '[ [ __ '"' -==- _]-== __
=' '==_+____ --[___=__' -_[_ ', '_ '=_ __ _ '=}_"["[ _ ' ]_ '+ __[+=+=+]_
____ '{===='"="_,___"''===" __ '=== ' _==, -[ '_ ____- __ '"''=[_' "' __ '""'' ' =_ -_ '_ ='"=='"[==
'=+' -==='-==,'[+===_=]_ =" =__ _[-[" '[ _' _=____+""=_ '_'+_ ]+_ +' _[ __ _=, "_'__[
__=-+[ = __'=''..__[" ]= _."' _["-"=..= ] __]=--=_ '"=. '"_'" "_ '==_' '[ ]_ "_ -=' '"' '_""=_
__"''__"''"- '""" _ __==- ___ _" '' _+ '_[ _"' '"+_ -_' ''"' [ _[ '[ '' '=
==- ']=-='__=_,- _=__'-_"']= '"' ]' ]' '="' '=___' '"=_'=_ ]' '. '[ ]_ , _=_
''' _[ _=[='___ '="==,_=_ '=_ '[ _[ '[ ''' '_="' '=_'' ]' !_ ]' _[ [_ '_"+
_=_=_ _._]==' '''______"]'-]=__[ __ '[ _]" '[ ==' "'==_'__ __ ]' __ '_ _[ "= _= _[- "==
'_[-{=_='"[=__ '='=]__[ '' ""' =' _[ '-- '= '=''"=_ _ '[ '_ __ ',__[' '__'[[_='[_
_''='___{"_-[=_ ="_'=[_'._ _-'' __ '[ -' =_ ' =' "__ __ __ [-_'' "[ ''"=-''
_+_ _-'"_==[''["__='"' ''='' +' -__+ ]_ _- '=_ __+=' '= __ ]'[ -== '"__
_= '__=[,'=]=]=='____ '] "_ ''= ]_ "=_ _." _="' [ -_ ]_]_ . _,_[_='""
_==+[]'']"=]_]''-"+""= '= "[ '[ __' "_ _+"' '' [ ' __-_ ', _ !_ '="-''__
._ ]''==___]_==_]' ___'==_ __ =_ [' "==_ _[ -"' [ __'[' =_', ]_ ._ '==_
"' '+_=]'-_','"-' '""-='" -"___--"' '_ '"- __,=" __ ] __ ]_ ''_]_ __' {"[___[=
=_]['[- '"==' "='=]'=' __ '[ =' '"' '=____=' ] -, ', ]"_ __ __]==="'
_=_['"_=__ '="_=__ '[_ '_[' '' =_ '""""' ] [ ]_ !_"_ =[ -_ ' __
'=_],.[__]__'_"'[=]_ __'===_'._, '=_=_ _ ] ] -_ -_']_ ]_ _,=__ _[
-=''_ _[]+==_]_-'-=" _=_"="___=' _+ -_'=__-[}+_ __ ]_ ]_ [ = '' '[ _'"==__'
-=' -__[_='' =",_ '"=_,_==]_'_[=_ __ ]_ ""=._' _,=" _="[ __ __ ]_ [' "[ '['
_[['==__ '[_]" "-''_'"="'"'" -[- '=' _+' '" _, ]''[ __ _'"_ __ '_ ==_ _['
'[_"'"==[[ ._["[_ __ ']=_ ____ '_= '' '_ .___ '_=' '===''_, -_ ]''[ '[ '[ '' _= -
=__=[[=="=='='_[_ ---_ '=="_']=-___ '"- '[ '""' __="' _====_" ____,___-____[ '_ [_ '[ '- '" !
'"['"_==''[=']='__' _== ____=_]"]']_= '__= '_ __="' '"=..="_=="""' '' ''_[ '[_'_ [_ ___ "=
_+[ _[+ -]"'-__=="' '' '''""[[[' '"' ''" "__ ___'"' '_-+="'' '] __ '+'[ ]_ '"'- =
__]- ".,'"' ''_=_ __ _[__['"= "= "==___ ==--"' ___=="'' ______..===] ____ ] ]' '_ '"' =_
'"___ ' __ '=' '' ___["+- _ __ '""- ="+_ ___+==""'' __=="""'''' '_','[ ]_]_ '[ -+ __ --
]___ ''" _= _=_ '"=-"]=''_ "_ _="' "_'" __=""' ___=="' __ [ ]_ -_'_ ]' ' __"=_
"'="=' ''-[+[_=_ '=-_+[_-___ ' =, '=_ ""' ___+=""'' -_ [ '[ '[ [ ]_ '- '=
_ '=' '' '=_ '=" ''' '=" '=__ _=''"' '[ ] ]' [_=_ '_
_+" , _+_- _'"- _ '' __ __=' _-="' [ ]_ ]_']_'[__[
-=,,'["___" ___=_ '=[=-_="== '==_ __ _ _.'== _," ]' ._ _=' __,="' -_ ]___,'_'[[ "'[]_
_[[' " =+-=_ ']['"' _"'_" '__ ''''= '=__=''' -' == _=' _-="' _' -'' ]_-_[ ]_[]_ [__
-[=" __[]_""___==_,_=_ [___==-_=_"' ___"' ] _- _" __='' '"==. '"' _[ '' ] ]__ [__ _
== '='-_+_''" __=[=_ ']-='''']===']"=' _''=_' _' _="' _[ '_'_[ '_' '_
__ '" _]=_' '_"=[_==["" _==_='" [_-=_"'- =_ == ,, __ _' _=' .,__= '[ ''_[]_ ___ _-
[[ _ '''+___ "[=_=__-[_+="___=_=+=[-___ =" '_ ' _[''=- ]''_=' _ _++-="= [ _[___["} _=
-' ==-_. =_[__ '_[[__'==_'[=_}_ "=[-=___ '],_ '' _[.=' '' "[ _._ ]' '"_='[ =_
__-==_ '[-+__ _='=-__]_-"'-==++=]__- -=_ '==[ _'_==_ _- '' ''' ]' '' ]'''
'"=[ _=_====_]___=-_+["'=_=_'" ___'"__ '[_ -+_ '"'' '' _=' '__ _}' ,== ]' ]' __
-_ '' ,=_=_===]'=="-='['' +=]"+_=-'"_=_[_ _=' '- _= __-==""' ""_++" ]- '_ _ -"'
'"" '__ } '][_-''_, "=' __ '=[,=]''"_"- _=_ __ _ _]' _ =-"' ___ '' ]- [ _[ '=
'-_' [''__ ]+-. '_=+,_=="' -=___[+=-_ _[_" -' _[__+-="' '""=___ ]' ] _[ -'
_=' .-''__]=-'_]''=_=_["=[]=_ _' _[="'_["_"___=[=' '_" ="' ''[[_ '[' '_ '' '=
- ]' -['-=={]+-__=='"-===_=_[___''''['''"'__''' _' __ ''_+__ [' '_==++__-,=' '
" _ __ =__''"""]=="'_==_ -="='_=" -[ -==[_ -' '-"" '"'"=,___ ]' __ _
'=-[_=__ _=__'' ][_]_=+_}=]' -_==_[+ =" =='' _- +_= -__" [' '= ]_
-_=__=='.=']=_- __===''_[==__= '"' ][_, "[ "" _="' .= __ _ ='= __"=_ ]' _[ ]'
--"''''_ '" '=+_'' '_[_[==[ '-'' '= -=_, '=' " +]_ =['+]==_ ]' _- __ ]-_
_" _']_ ,'=,[__ _=_==="=='==' ]=' -_ _{' __ __ _=]'_=[-_[[=[ '==...==--==="'' -'_ .='_
" __'=+=' _="- '="'_+[[]"+_[ _'" '=' _= _- '' _+' =' '=__ ]]"_'=_--'[[= ']'[ '
".="__ ___=+=__.=' ___===[=__==_"'.__'= _= "' _' _[ ____ '" '=_[=""']'[[ _ [ __ _[
[[ +''=___['[__[_+['"' ''"!" '"'__"' ="_ _]' '' '""' __ '""'__ ['_[ [ _[_ -='
]"[_=_=]]'"=_]]='" _=[_="' '_===-+'_' -=.._ _=" __ '=_-_ '"=""]" ' ___"["_.=' '
'_'=__+['__'"_" ___]_''____' __="_' ''=='-+ +_ '' _+' '"' "+[' ]'['= _- __ __[_-_==''='
==]'']__.'' _[-"__ '_"__=-]=_ =''=_ _,- '= _=' _____ _[" '_[ [_[ -_ .[ == ""-
]"_"[ '""__ ]_+-[=__=_'==__=[ +}+= '' '__' _=' _="'"' -+ [[' '_]_ '=_ _[ __
_=_==''' '='_ ']''=+]""' -''=]{"- '' '_===___= _" [' __ __'._ _'[_ _"', '[' _"__"=
' ][[=_ - -+[=____]-' , '-=== ''' '='" _[' [ _=' +="'''= +']' '= ]_ '__ __--__ _
.['_==['" ==""'"=[_=_-_ _[_ "=____ -' _[' _' __=' '==.._ '_= '=]_' '+ -=__ __ '
__ "_____ +=__+, '["+]"]_]"= '"""' ]' [ ']' '' ,]' '" -+ ,_"_ "}_
_[_.==="= __''=='="' '"'_]== _,' ] ] =_ "[_=[ =_ '='="_=''"
'"--' __ '"__[=,' __++_"='_=' ___ __ ']' [ ] -' "_ +_ '=' ___ --]_"'' =-'
=_=_=_']-__-'_["_,=__['"==_==_ .=- '' _' _= =[ __ "=_ __ ''=''=-'=" __]='
=[=''' ''_=__'_[[[ "=" =[,__ __ __- _" '=' _- ]_ ]_ '_"- ']=++-__ '== '+__'___['"'_
_=_= '""-[=_[][__=_==_]=''=--"=_'_='' _" ', '"' _' "= '=- '._'' [=._"="' =
[=]___=_ -"++_'_='"' "[[____ '"''' _=' [ -[- '= " ]'_'=- __-
'="=__]"-=' '==-_[=' '"_['' "=. '_" '_ "_ ] +-'__=_]_=._'__
']''===+___'-___ ==]='___=[_==' ' __ =" '+_ _== _ __ ' ''-"__'"]=']_]"
_= _=' '_"=]'"=____==="_=-'__" ____ '" _= '_- ]_ _=' __=' -===_ -"' ___'==___==' -
' __'" ]=+_'''''"_[[_==[--+="__-"'""' '=' "' -"' '= _=-_ "'" '"""" __ ''"=++==="' =
Terminal window
python contour.py ^
--image_path ../../resource/imgs/girl_with_pearl_earring.jpg ^
--canny1_min 160 --canny1_max 201 --canny1_step 20 ^
--canny2_min 240 --canny2_max 281 --canny2_step 20 ^
--dilate_iter 1 --erode_iter 0 --gb_sigmaX 0 --gb_size 5 ^
--contrast_factor 16 --contrast_window_size 8
Terminal window
python edge_trace.py ^
--image_path ./contour/contour_180_260.png ^
--resize_factor 4 ^
--palette_path ../../resource/palette_files/palette_chars_consolab_fast.json ^
--match_method slow ^
--original_image_path ../../resource/imgs/girl_with_pearl_earring.jpg ^
--save_ascii
Real ASCII Gallery - Edge Trace Filter
https://marblestack.github.io/marblestack/posts/b_ascii/c_edge_trace_gallery/
Author
MarbleStack
Published at
2025-12-19
License
CC BY-NC-SA 4.0