前言
强联杯是我参加的第一个线下赛,这道题使我印象深刻,最近重做了一下,写下WP以此记录。
WriteUp
其实放大图片就可以看到,图片中有很多白色的像素点,仔细看会发现每个白色像素点在宽和高上都间隔了20个单位的像素点,我们要做的就是把像素点提取出来拼接在一起。下面我就直接放上我学校实验室大佬写的解题脚本。
import cv2
img = cv2.imread("under_your_nose.jpg")
i = 0
while i <= 1884: #图片高为1904,1904-20=1884
j = 0
while j <= 1900: #图片宽为1920,1920-20=1900
for x in range(i, i+20): #把像素点放大20倍
for y in range(j, j + 20):
img[x, y] = img[i, j] #经过测试img[x,y]=img[高,宽]
j += 20
i += 20
cv2.imwrite("test.png", img)
这个解题脚本的思路就是把每个白色像素点在宽高上重复20遍,因为像素点通常都是单个的染色点,相当于把单个像素点放大了20倍,最后得到flag。