基于Python+C++的二维碎片图像拼接复原系统

您所在的位置:网站首页 恢复二维码图片 基于Python+C++的二维碎片图像拼接复原系统

基于Python+C++的二维碎片图像拼接复原系统

2024-07-10 16:02| 来源: 网络整理| 查看: 265

资源下载地址:https://download.csdn.net/download/sheziqiong/85661622 资源下载地址:https://download.csdn.net/download/sheziqiong/85661622

需求分析

二维碎片的复原拼合工作大都采用手工的方式,拼合的效率十分低下,但随着计算机技术的发展,尤其是在图形学方面的迅猛发展,使得计算机处理二维碎片的拼合成为可能。二维碎片的轮廓匹配技术目前已发展为计算机视觉、图像分析、医学图像配准、文物复原、光学和雷达跟踪、及模式识别等领域中的重要课题

在某些特殊场景,比如考古挖掘领域,由于时间久远。发掘的文物大都是破碎不完整的,如果纯靠人力对其复原需要大量的时间和精力,计算机辅助拼接碎片有很大的需求。还有碎纸机销毁了很重要的文件,需要将碎片拼接复原。

我们针对这方面的需求开发了一款软件,该软件可以根据碎片图像,对碎片进行拼接和复原。

概要设计 1.核心算法匹配组件模块:

全部用 C++ 和 opencv 实现,先对碎片进行数字图像处理包括,高斯滤波,形态学滤波,二值化和轮廓树提取等处理。然后用动态规划的最大公共子串算法构建二个碎片的匹配器,最后基于优先队列和 BFS 实现的最小生成树算法拼接还原碎片,该模块是程序的核心算法功能组件。

2.接口调用模块:

全部用 Python 实现,其功能包含,网页爬虫获取图像素材,随机切分得到一系列碎片调用底层 C++ 实现的核心模块拼接复原图像,最后包含对拼接结果的测试程序。

3.界面 UI 模块:

PyQt5 设计具有良好的用户交互,可以在界面自动生成碎片,并随机打乱,然后通过拼接按钮自动拼接复原,可以选择切分的数目和类型,可以下载测试数据,并对所有的测试数据全部拼接复原,统计它对不规则带纹理碎片的拼接效果。实践证明,大部分碎片都能取得满意的拼接效果。

算法介绍 数字图像预处理:包含高斯滤波,Canny 算子提取边缘,再通过形态学膨胀和腐蚀操作转化为二值图像,然后用 opencv 提取二值图像的边缘轮廓, 最后用多边形拟合近似,得到一系列的轮廓点构建二碎片匹配器:这里用到了多边形的内角匹配合形状匹配以及灰度值匹配,我们成功运用了最大公共子串的模型用于多边形轮廓匹配,同时改进了基于动态规划的最大公共子串算法,借助多个参数阈值,使得俩俩轮廓匹配的算法准确率大大提高,最后成功构建了一个匹配器,只要输入二个原图像该匹配器会计算出最佳的匹配位置,同时得回一个匹配系数,为后续拼接做铺垫构建最大匹配树:对每二个图像依次进行俩俩匹配,保存对应的匹配系数和最佳匹配位置,然后可以得到一张无向图,图中的每个顶点代表一副图像的轮廓信息, 连接顶点的边代表二副碎片图像的匹配系数,最后从该图中生成一个匹配系数总和最大的一颗树(其实就是最小生成树算法),我们用 C++ 优先队列和 BFS 实现,再记录这棵树的每一条边。还原拼接图片:遍历每一条边,根据之前记录的轮廓匹配位置,依次对该边对应的二个顶点即碎片图像进行拼接,最后就可以得到完整的拼接后的图像 技术路线 C++ 开发环境:Microsoft VisualStudio 2017Python 开发环境: PyCharmC++ 开源计算机视觉库: Opencv4.1.0Python 开发语言版本: Python3.6Python 依赖第三方模块: 数值计算库 Numpy图像处理库 SkImage界面设计库 PyQt5 结果展示

资源下载地址:https://download.csdn.net/download/sheziqiong/85661622 资源下载地址:https://download.csdn.net/download/sheziqiong/85661622



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3