今天我想知道如何分析1位色深(100 * 30)像素的png图像。
图像中的像素第一行编号为0..99,第二行编号为100..199等。白色像素表示ascii代码。特定白色像素的ascii代码等于距最后一个白色像素的偏移量。例如,位置65处的第一个白色像素表示ascii代码65('A'),位置131处的下一个白色像素表示ascii代码(131-65)= 66('B')等等。
图像中包含的文字是我需要在莫尔斯编码的内容,其中“测试”将编码为“.- / - 。... - ”
好吧,我希望你能帮助我;)
答案 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')
<强>输出强>
-.- --.- --.. --. -. ..--- .---- .. .-.. -
我会让你写出莫尔斯解码的东西。 :)