Python(0X01)


图片转字符画

  1. 灰度值(Gray scale): 0~255,256,2^8
  2. RGB 图像 转 Gray 图像
  • base on gamma=2.20
    sRGB空间存储的图像
    Gray = R 0.299 + G 0.587 + B 0.114
    ~
    Gray = R
    0.30 + G 0.59 + B 0.11

  • 线性空间存储的图像
    Gray = R 0.2126 + G 0.7152 + B * 0.0722

    1
    grayscale = getGaryScale(r,g,b,gamma);
  1. Gray 图像 与 字符画 的对应关系

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    // 常见字符(total: 70)
    $@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'.
    /*一种简单的对应方法是:
    * 将上列所有字符添加一个外圈,并想象为一个点,该点具有不同的灰度.
    * 将成型后的上列字符与灰度值进行映射,并生成灰度图像即字符画.
    * 再往深的想可以用现有字符构造更加类似灰度值的'点',用四个字符来构造为一个像素点.
    * 再一个就是可以讨论对图像本身的筛选,线条明显,色块明显
    */
    1 10 ... 70
    0 9 ... 69
    0 255
  2. Gray 图像 转 二值图像(黑白图像)

    1
    2
    3
    4
    5
    6
    //设 (x,y)G 为图像的灰度G的像素
    float threshold; //定义一个转换阈值
    if ((x,y)G>=threshold)
    (x,y)B=1;
    else
    (x,y)B=0;
  3. Extend
    tags: 线性存储,无损压缩,调色版,补偿,rgb+alpha