CTF 图片按顺序拼接脚本 Python

CTF中可能出现很多拼图的题目,那么拼图是怎么生成的呢?

下面给大家一个CTF中图片按照顺序分割的脚本:

前些天发布了《CTF 图片按顺序分割脚本 Python》,今天,给大家分享一下拼接脚本。顺带回复一下下面的评论。

from CV2 import CV2

import os

import shutil


#读取目标图片

target = CV2.imread(r"what.jpg")


#TODO:获取匹配度

def match(temp_file):

    #读取图片

    template = CV2.imread(temp_file)

    #执行匹配,采用的匹配方式CV2.TM_SQDIFF_NORMED

    result = CV2.matchTemplate(target, template, CV2.TM_SQDIFF_NORMED)

    #归一化处理

    CV2.normalize(result, result, 0, 1, CV2.NORM_MINMAX, -1)

    #寻找矩阵(一维数组当做向量,用Mat定义)中的最大值和最小值的匹配结果及其位置

    min_val, max_val, min_loc, max_loc = CV2.minMaxLoc(result)

    return abs(min_val)


dirs = os.listdir(r"C:\\Users\\Lenovo\\Desktop\\hackerClub\\what\\misc")

#print dirs

count = 0

for k in dirs:

    if(k.endswith('png')):

        count += 1

        print("processing on pic"+str(count))

        real_path = os.path.join(r"C:\\Users\\Lenovo\\Desktop\\hackerClub\\what\\misc",k)

        dst_path = os.path.join(r"C:\\Users\\Lenovo\\Desktop\\hackerClub\\what\\find",k)

        rect = match(real_path)

        if rect > 1.8e-11:

            print(rect)

            shutil.copyfile(real_path, dst_path)

    else:

        continue

 

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值