@cleardusk
2018-12-24T12:48:52.000000Z
字数 667
阅读 1337
雁栖湖
本程序是将图片转换为 ascii 文本(本意是侧重人脸的),imgs
文件夹有几张运行的结果,可以看看效果。由于时间受限,实现的功能较少。但核心算法是
已经实现了的,原理也比较简单。如果文本编辑器支持的行列数比较少,可以用浏览器打开进行缩放,效果更好。
gjz_img2txt('./imgs/tly1.png', 6, 'mean', false)
第一个参数是读取图片的路径。
第二个参数 step
是步长的意思,每隔 step
个像素进行采样。step
越大,输出的 ascii 越小。
第三个参数是不同的灰度化方法,mean
意思是对输入 RGB 通道的图像 RGB 分量取平均作为单通道的灰度图,即 ,还可以选择 normal
,就是常规的灰度化 ,当然输入若是单通道的就不用灰度化了。
第三个参数是是否进行直方图均衡化,对于对比度比较差的图片,可以设置为 true
。
调用该函数后会在图片的路径写一个 txt,文件名就是 ${file_name}.txt
一般图片较清楚,后两个参数设置为 mean
和 false
效果较好。
跟打印机打印不同灰度的文稿一样,人眼对不同密度的点会产生不同 level 的 intensity 效果。具体见 gjz_img2txt_core.m
文件。
已经移植到 Python:https://github.com/cleardusk/ImageToAscii
若有任何疑问,欢迎与我讨论~