分析像素的png(1位颜色)

时间:2015-02-16 12:54:57

标签: python image-processing png

今天我想知道如何分析1位色深(100 * 30)像素的png图像。

图像中的像素第一行编号为0..99,第二行编号为100..199等。白色像素表示ascii代码。特定白色像素的ascii代码等于距最后一个白色像素的偏移量。例如,位置65处的第一个白色像素表示ascii代码65('A'),位置131处的下一个白色像素表示ascii代码(131-65)= 66('B')等等。

图像中包含的文字是我需要在莫尔斯编码的内容,其中“测试”将编码为“.- / - 。... - ”

This is the picture

好吧,我希望你能帮助我;)

1 个答案:

答案 0 :(得分:1)

以下是如何根据问题中的规范提取已编码到图像中的文本。要使用PIL(真正Pillow)提取图像数据。

#! /usr/bin/env python

from PIL import Image

def extract_text(iname):
    last = 0
    chars = []
    for i, v in enumerate(bytearray(Image.open(iname).tobytes())):
        if v:
            chars.append(chr(i - last))
            last = i
    return ''.join(chars)

print extract_text('coded.png')

<强>输出

-.- --.- --.. --. -. ..--- .---- .. .-.. - 

我会让你写出莫尔斯解码的东西。 :)