第11关
一张模糊的图片, 网页标题是odd even. 图片看起来像是由不同的图片叠加得到的, 要按照odd, even像素把它分开. 仍然是要用到Pillow模块. 为了方便分割, 我还用到了numpy
根据水平和垂直方向的奇偶位置, 把原图的像素分成四个部分, 每个部分形成一张小图, 有点像小波分解里的四个部分.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| from PIL import Image import numpy as np
im = Image.open('cave.jpg') width, height = im.size imdata = list(im.getdata()) imdata = np.array(imdata) imdata = imdata.reshape((height, width, 3))
aa = imdata[0:height:2, 0:width:2, :] hh = imdata[0:height:2, 1:width:2, :] vv = imdata[1:height:2, 0:width:2, :] dd = imdata[1:height:2, 1:width:2, :] sub_imgs = [aa, hh, vv, dd] im2 = Image.new(im.mode, (width/2, height/2))
for img in sub_imgs: img = img.reshape((-1, 3)).tolist() img = [tuple(x) for x in img] im2.putdata(img) im2.show()
|
显示出来的四张图片, aa和dd是一样的, hh和vv是一样的. 图片上可以得到通关信息evil 下一关: http://www.pythonchallenge.com/pc/return/evil.html