解决方案

# python3
import cv2
from PIL import Image
import numpy as np
import os
import shutil
import threading# 读取目标图片
source = cv2.imread(r"C:/Users/Lenovo/Desktop/pt/source.jpg")
# 拼接结果
target = Image.fromarray(np.zeros(source.shape, np.uint8))
# 图库目录
dirs_path = r"C:/Users/Lenovo/Desktop/pt/pingTu"
# 差异图片存放目录
dst_path = r"C:/Users/Lenovo/Desktop/pt/new1"def match(temp_file):# 读取模板图片template = cv2.imread(temp_file)# 获得模板图片的高宽尺寸theight, twidth = template.shape[:2]# 执行模板匹配,采用的匹配方式cv2.TM_SQDIFF_NORMEDresult = cv2.matchTemplate(source, 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)target.paste(Image.fromarray(template), min_loc)return abs(min_val)class MThread (threading.Thread):def __init__(self, file_name):threading.Thread.__init__(self)self.file_name = file_namedef run(self):real_path = os.path.join(dirs_path, k)rect = match(real_path)if rect > 1e-10:print(rect)shutil.copy(real_path, dst_path)count = 0
dirs = os.listdir(dirs_path)
threads = []
for k in dirs:if k.endswith('jpg'):count += 1print("processing on pic"+str(count))mt = MThread(k)mt.start()threads.append(mt)else:continue
# 等待所有线程完成
for t in threads:t.join()
target.show()
target.save(r"C:/Users/Lenovo/Desktop/pt/target.jpg")

参考文章

第十一届极客大挑战部分WP(无re和pwn)

从DDCTF2020-拼图题,学习如何做拼图题

Python实现将一张图片放到另一张图片指定的位置上并合成一张图

Python3 多线程

Python——基于PIL和CV2实现自动拼图解决方案相关推荐

  1. Ubuntu20.04实现Python基于Selenium实现上海大学校园网自动登录

    Ubuntu20.04实现Python基于Selenium实现上海大学校园网自动登录 以anaconda环境为例,创建一个Selenium的虚拟环境: 一.安装selenium 1. conda cr ...

  2. Python基于民航业知识图谱的自动问答系统(附源码)

    一.开发环境 Windows 10 x64 Python 3.7 Neo4j community 3.5.20 二.项目运行 1.确保安装所需依赖 pip install -r requirement ...

  3. Python之PIL之绘图:基于Python的PIL库绘制各种图形、添加文字等

    Python之PIL之绘图:基于Python的PIL库绘制各种图形.添加文字等 目录 一.绘制各种形状各种案例 1.绘制矩形 2.绘制圆形.弧线形

  4. 【Python】基于文本匹配的微信自动问答

    [Python]基于文本匹配的微信自动问答 摘要 一.引言 二.相关工作 三.方法描述 1.数据预处理 2.特征提取 3.文本匹配 四.代码部分 五.实验结果 六.总结 摘要   本文针对传统的基于规 ...

  5. 【Python】基于Selenium实现上海大学校园网自动登录

    [Python]基于Selenium实现上海大学校园网自动登录 安装selenium Selenium官网 以anaconda环境为例,创建一个Selenium的虚拟环境,若不需要可以不做第一.二步 ...

  6. python京东自动签到领金豆_基于Python+Appium实现京东双十一自动领金币功能

    基于Python+Appium实现京东双十一自动领金币功能 发布时间:2020-09-28 02:22:30 来源:脚本之家 阅读:87 作者:一土小亘兄 背景:做任务领金币的过程很无聊,而且每天都是 ...

  7. 【python+情人节】玩个俄罗斯方块都是爱你的形状——三、自动拼图

    本项目效果如图 动画过程已投稿b站:https://www.bilibili.com/video/av88671119 目录 一.思路分析 二.手动拼图 三.自动拼图 四.动画展示 ========= ...

  8. 基于Python与OpenCV的纸质票自动统计功能的实现(一)界面编程

    基于Python与OpenCV的纸质票自动统计功能的实现(一)--界面编程 作为一个资深的自动化工程师,界面编程对我来说太熟悉不过了,但是当时用的都是工业界面编程软件,比如WINCC.组态王等等,在这 ...

  9. Python基于pyzbar、opencv、pyqt5库,实现二维码识别 gui 应用程序开发

    二维码组成结构基本介绍 二维码识别背景介绍 视觉的方法可以用来估计位置和姿态.最容易想到的是在目标上布置多个容易识别的特征,这样使用opencv相机标定和.相机畸变矫正.轮廓提取.solvepnp来获 ...

最新文章

  1. 图像实例分割:CenterMask
  2. SanDisk闪迪推面向VMware Virtual SAN 6的增强型闪存
  3. c语言中malloc分配矩阵,malloc,分配矩阵
  4. 【在还原SQL Server数据库时发生对于服务器“XXX”操作系统错误】很实用的解决方案...
  5. 研究了 2 天,终于知道 JDK 8 默认 GC 收集器了!
  6. java对.txt文件进行读取方法实战---室友是网络安全方向,帮他提取文件里的特定ip
  7. 中航工业集团金网络(北京)电子商务有限公司副总经理刘正珩:航空“智”造的供应链支撑平台...
  8. open***2.3.12安装与easy-rsa3的使用
  9. MyBatis 动态 SQL 底层原理分析
  10. 百度统计 java 实现思路_211本+985硕+计算机专业投面百度,坐等一周迎来三面,已拿offer...
  11. linux脚本定时拷贝文件,使用Linux shell脚本实现FTP定时执行批量下载指定文件
  12. salesforce 零基础学习(十八)WorkFlow介绍及用法
  13. JavaScript变量复制
  14. U3D 场景快速搭建教程
  15. android windows 分区大小,真正的安卓Windows双系统,RemixOS Windows共存系统安装+附带ROOT+大分区...
  16. springboot 配置文件的所有属性
  17. js 点击按钮或者图片,实现图片上传并显示在页面上
  18. 入门人工智能该读哪些书?五份AI经典书单
  19. java编程官方教程_Java编程入门官方教程
  20. 股票量化分析系统浅析之(三)归一化与标准化

热门文章

  1. flask html下拉列表,如何使用Flask和HTML从python列表创建下拉菜单
  2. ubuntn终端缩小_缩小可以通过终端执行的工具
  3. i219v linux,I219V高传播延迟
  4. php中的unbuffered_row,php – 加载数据infile和unbuffered查询错误
  5. java项目导入包报错_转!java web项目 build path 导入jar包,tomcat启动报错 找不到该类...
  6. linux e盘路径,Linux添加路径到PATH环境变量
  7. long 雪花算法_海量数据分库分表方案(一)算法方案
  8. 程序员吐槽_男子吐槽:35岁被裁都是低端程序员,有能力只会是一个新台阶
  9. 四、Go语言复合数据类型(上)
  10. 天天python爬虫,你不腻的吗?