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

基于Python+C++的二维碎片图像拼接复原系统需求分析二维碎片的复原拼合工作大都采用手工的方式,拼合的效率十分低下,但随着计算机技术的发展,尤其是在图形学方面的迅猛发展,使得计算机处理二维碎片的拼合成为可能。二维碎片的轮廓匹配技术目前已发展为计算机视觉、图像分析、医学图像配准、文物复原、光学和雷达跟踪、及模式识别等领域中的重要课题在某些特殊场景,比如考古挖掘领域,由于时间久远。发掘的文物大都是破碎不完整的,如果纯靠人力对其复原需要大量的时间和精力,计算机辅助拼接碎片有很大的需求。还有碎纸机销毁了很重要的文件,需要将碎片拼接复原。我们针对这方面的需

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

需求分析

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

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

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

概要设计

1.核心算法匹配组件模块:

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

2.接口调用模块:

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

3.界面 UI 模块:

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

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

算法介绍

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

技术路线

  • C++ 开发环境:Microsoft VisualStudio 2017
  • Python 开发环境: PyCharm
  • C++ 开源计算机视觉库: Opencv4.1.0
  • Python 开发语言版本: Python3.6
  • Python 依赖第三方模块:
    • 数值计算库 Numpy
    • 图像处理库 SkImage
    • 界面设计库 PyQt5

结果展示

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

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

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

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

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

今天的文章基于Python+C++的二维碎片图像拼接复原系统分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/28517.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注