A very simple program using the open CV library to convert a image to ASCII as seen below:
It converted this:
To this:
__ _.,---------,_
...,,,..__...._ _.----------------_
..,--------,.._..,,--,,...,---,.,,,.____.,------------,,,,,.,--,_
__ _______.,-------------------,,--------------------------------,.=++++-_ _,--._
..,.......,-,..-=++++++++++=-,-------------------------------------,,=++++++. _.,--,._
,,.............,+++++++++++,=++,---------------------------------,,++=.,+++=_
__................=+++++++++-,,-------,,---====-----,------------,---,,,-++-_
_________...........+++:++=.-,==--,._,---=----------,.---------------.-++++.
___________.=:++++=,==-._,;;,-==========----._,=----=---------.++-_
_-++++,=-_.:c;ccc-=========-=====,__.-====-----===-,-_
=,,=+,--c;+--++ba-======,.,:cc;c;+.__-====-------=,
=ba!!!;-,=:acbcca!!c,==,+aacccc==ccc;..==-=+=b!!!!!+b+,
.c?!!b;b,=,+ca!+._=bb;,=-aa;c-,bc;a;-cc;.=-!!!!a=!!!!?+!a,
+!????b,---;:=;caccccb=====;ab-.;aa;cb;-;-==!!??!b+!!!?:!!;.
:??a+-==-;:-+;:=:bab=-=====,.-:cbc:;;+-=,===?!???!+!!!;a!!:.
..,-======-,,,,.+;+----+c!c-,,---=++=-==-=-;!??!!!:!!!!!!a,
,,=======-,,,-=-:!==-.__-b!?!;??b-,,--,,,===-b??????!c???!!b,
.....a??+-=,=;a!?abb?aa?b!?b!????!ba+-c!?b-a???????????!!;-=====
_,,.==,c??c+;?!:=:bb;=;a!!???aa?+b???;+?c:????????????!:-========-,
.-====-.b:!00?!aa??ac?a??b:::;:+++???b;???????????!:-=============-,
.-====--===-a??0??0?b+;!????cb????!b;?!;0?0????????:-=================,
_,=====,=======-!???00000;bac,,-----==,,=:??????????+====================.
.======-=========-:????????0?;-++=======,=,+;+;;:!;cc--====================,_
.-======-=======-,-=====:!??a--===========,==-,==========,-===,,==============,_
_,============,,-===========..=============;=;+==,===========,,-=,-==============._
.=========,,-=+============.-.====;bb;====:bb+;b:==,-============-,.===============.
.-====+=,,=======+=========.=:-,===+bbbbc++cbbb;:bb;==-,===============-,-============.
_.=====-,=======+====+++===,-+:+=.===:bbbbbbbbbbbc=bbbc===--=================-,-=========.
.-==================++++=-.+:++++,-+++cbbbbbbbbbbb=bbbbb:===,-===================,=======,
.================+++===,-========.=+=:bbbbbbbbbbbb+cbbbbb:===,-==========================_
,====================-_____......_,+==cbbbbbbbbbbbbbbbbbbbb:===,-========================,_
_==================-__.........,,,.-==:bbbbbbbbbbbbbbbbbbbbbc+===.-======================-_
-================._....______....__-+=cbbbbbbbbbbbbbbbbbbbbbb;====,,====================-.
-=============.___________________.==:bbbbbbbbbbbbbbbbbbbbbbbc+====-,-=================__
_,-=======-.-==-,...,,,,,,,,,,,,,.-=+bbbbbbbbbbbbbbbbbbbbbbbbb+=======,,-============.._
_..,.,-=====++====..,,,,,......-=:bbbbbbbbbbbbbbbbbbbbbbbbbc+==========-,.,----,....
-====================,.-=--,,,,==cbbbbbbbbbbbbbbbbbbbbbbbbbbc=======,,-============..
-.-======================-.,--.==:bbbbbbbbbbbbbbbbbbbbbbbbbbbb:===-.-================-.
..===========================,-=+cbbbbbbbbbbbbbbbbbbbbbbbcccccc=-.====================,.
_==========================-,==cbbbbbbbbbbbbbbbbbbbccccccccccc--======================,
,=========================,==+cccccccccccccccccccccccccccccc:,=======================-,
.=======================-,==:cccccccccccccccccccccccccccccc--========================,
.-=====================,-==:ccccccccccccccccccccccccccccc;,=========================,
,-===================,-==+ccccccccccccccccccccccccccccc;,=========----------=====-,
.,=================-,===;cccccccccccc;;;;;;;;;;;;;;;;;,=======------------------,
,-===============,-=-:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-==-------------------,--,
,--------------.--=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=--------------------.---.
_,------------.--=;;;;;;;;;;;;;;;;;;;;;;;;;;;;+-------------------.---,.
.-----------.--+;;;;;;;;;;;;;;;;;;;;;;;;;;;:,-----------------.---,.
.----------.--+;;;;;;;;;;;;;;;;;::;;;;;:;:,----------------.,--,. ..,
.,---------.,-=:::::::::::::::::::::::::+,---------------.,--,_.,-------
______ _..----------,.--+:::::::::::::::::::::::=,--------------.,--,.----------
.:cbbbbbabababbaabb;:+=--,-+:=---,,,,--,,,-+:::::::::::::::::::::,-------------,.,--.,-----------
+cbbbbbbbbbbbbbbbbbbbbbbbbbbbb;=:bbbbbbbbbbbbbc=,+::::::::::::::::-,------------..--,.,,,,,,,,,,,,,
cbbbb;=:cbbbbbc;;cbbbbbbbbbbb:+bbc:+++++;bbbbbbcccb;--+:::::::::::=.------------.,,,.,,,,,,,,,,,,,,,
ccc:+cbccbc=;cbbbbbbbbbbbbbb;=c=;cccccccc;;cccccccccccc:-,=+::::+,,-,-,,,,,,,,,.,,..,,,,,,,,,,,,,,,,
:c;-ccccc+:cccccccccccccccccc--;cccc++;cccccccccccccccccccccc;::;;cc;=---,,,,,.,..,,,,,,,,,,,,,,,,..
_=+;;=;cccccccccccc;;;:+=-,,;;;=ccccc;cccccccccccccc;;;;;;;;;;;;;;;;;;;;=..,,,,,,,,,,,..__
...-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:, ...
._.-+:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:-
Using openCV it pushes the pixels into an array which we convert to a gray scale value. Then we use something called a "density" string which describes gray scale images as characters my showing a certain portion of the background. Combing these two features we loop through every pixel in the image and convert it to it's corresponding character.