2020年强联杯under_your_nose[WriteUp]

前言

强联杯是我参加的第一个线下赛,这道题使我印象深刻,最近重做了一下,写下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。
在这里插入图片描述

相关链接

  1. 什么是像素?它有哪些基本特点?
  2. CV2模块使用(详细教程)
    Python 之CV2详解
    python-opencv2利用cv2.findContours()函数来查找检测物体的轮廓
  3. 原WP链接:强联杯S1 2020 WriteUp
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值