将图片转换为ASCii字符,就是根据图片的亮度(或者称灰度),用ASCii字符代替图片的像素点或图片的分块。效果如下图:
Lena灰度图
LenaASCii字符图
基本原理
灰度图
首先要引入一个概念:灰度图。
我们都知道,平时日常见到的彩色数字图片是由一个一个紧密排布的像素点组成,而每个像素点的颜色由红色Red、绿色Green和蓝色Blue三种颜色根据不同的比例组合而成。这种彩色图片通常也称为RGB图,其中R、G、B各自的取值范围在0-255,数值越大,说明该种颜色越深。例如:
RGB=[0,0,0]为黑色;RGB=[255,0,0]为红色;RGB=[255,255,255]为白色。
而灰度图则是人们日常看到的“黑白”图片,图片中每个像素点只有一个值,用来指示该像素的灰度,取值范围也是0-255.这种黑白图片就是人们常说的灰度图,例如Gray=255,该像素点为白色;Gray=0,该像素点为纯黑色;Gray值越接近255,该像素越接近白色;Gray值越接近0,该像素越接近黑色。
RGB图转灰度图
RGB图转换为灰度图的过程为根据RGB的值,使用某种算法将其转换为一个可以表征其灰度的0-255的值。以下是一种经典的算法:
f(Gray)=R∗0.299+G∗0.587+B