基于临近图片相似性分析的图片碎片拼接算法matlab仿真

简介: 基于临近图片相似性分析的图片碎片拼接算法matlab仿真

1.算法描述

     由于所使用的碎片,背景颜色都是白色,而且部分碎片正好在两个不同的文字之间,因此,没法直接使用颜色匹配或者文件匹配的方法。

    第二,由于很多碎片其边都是直线的,所以我们也没法直接使用很多论文所介绍的随机不规则碎片拼接算法。也没法使用角点匹配的方法,因为角点匹配主要是基于有部分重合的情况下的碎片拼接。

    考虑到上面的两种实际情况,这里使用的是一种几何外形匹配的方法,这种方法,我们首先需要指定一个碎片,通常我们指定一些特征位置的碎片,这里我们选择左上角的那个碎片作为第一个碎片,然后将其余碎片和这个被选中的碎片一一组合拼接,直到找到匹配的碎片,然后进行组合,将组合得到的碎片作为新的碎片,然后再和剩下的碎片进行匹配,知道完成所有的碎片匹配,完成碎片的拼接。
   图像碎片自动拼接技术的研究是一个有很大实用价值的课题。如,考古研究中对破碎珍贵文物的修复,公共机关破案时遇到的破碎证物的修复等。传统上,拼接复原工作需由人工完成,准确率较高,但效率很低,特别是当碎片数量巨大,人工拼接很难在短时间内完成任务,这种落后的无奈之举和信息时代高效的现实需求之间的矛盾愈来愈明显。基于此,需要建立数学模型和算法将图像碎片自动拼接,即借助计算机,通过特征匹配技术来识别出相邻接的图像碎片,进而重现整个物体的原貌,以提高拼接复原效率。题目要求建立粉碎机横纵切单面纸片和双面纸片的复原模型与算法,将人工复原和机器复原相结合,探寻干预节点,并通过所建立的方法对题目附件中的粉碎图片进行还原。

   碎纸片拼接方法的研究一般模型如下:实物碎片→碎片数字化→图像预处理→提取边界→特征分析检测→找匹配段→拼接复原。常规文档碎纸片计算机拼接方法一般利用碎片边缘的尖点特征、尖角特征、面积特征等几何特征,搜索与之匹配的相邻碎纸片并进行拼接。但是这种基于边界几何特征的拼接方法并不适用于边缘形状相似的碎纸片。而题目中所给的图片均为相同形状的图形,拼接时如果只利用碎片的边界特征,拼接效果并不理想。当然,因此我们也省去了将图片预处理和提取边界的步骤。

   尽管图片是规整的,但是我们所要拼接的内容涉及到文字内容,所以我们可以大胆设想文字特征类似于非规则图片的曲线性,由此看来与碎片匹配时,涉及到一个重要的问题就是曲线匹配。曲线匹配的关键技术是确定坐标变换中具有不变性的量,即不变量为匹配依据,用不变量重新表征边界曲线。既然通过不变量表征两条边界曲线特征,就需要在特征不变量序列中找公共序列,但实际情况又不能满足严格的对应相等,所以把最长公共子序列问题的思想蕴涵其中,即我们可以对左右两列从上至下去坐标值,并设定阈值,通过阈值的划分性进行匹配。

2.仿真效果预览
matlab2022a仿真结果如下:

image.png
image.png

3.MATLAB核心程序

global allP
global margl margr
global ld
global pn pw ph
 
allP=brief_pretreat;
[margl,margr]=extractmargin;
 
 lmark=brief_markline_accurate;
 
pind=zeros(11,19);
tick=[0 4.5 10 20 26 30 36 40 47.5 50 57.01 60];
for k=1:11
    pind(k,:)=find(tick(k)<lmark&lmark<tick(k+1));
end
rerow=[4 6 8 10 2 3 5 7 9 11 1];
pind=pind(rerow,:);
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%55
P=zeros(11,19);
for k=1:11
    P(k,:)=arrangemethod3_1(pind(k,:));
end
 
%%
upind=[];
dnind=P(2,:);
ppind=pind([1,7],:);
ppind=ppind(:);
P(1,:)=arrangemethod4(upind,ppind,dnind);
%showP(P(1:2,:))
 
upind=P(6,:);
dnind=P(8,:);
ppind=pind([1,7],:);
ppind=ppind(:);
 
P(7,:)=arrangemethod4(upind,ppind,dnind);
 
showP(P)
toc(a)
相关文章
|
4天前
|
算法 数据挖掘 数据安全/隐私保护
基于FCM模糊聚类算法的图像分割matlab仿真
本项目展示了基于模糊C均值(FCM)算法的图像分割技术。算法运行效果良好,无水印。使用MATLAB 2022a开发,提供完整代码及中文注释,附带操作步骤视频。FCM算法通过隶属度矩阵和聚类中心矩阵实现图像分割,适用于灰度和彩色图像,广泛应用于医学影像、遥感图像等领域。
|
3天前
|
算法
基于HASM模型的高精度建模matlab仿真
本课题使用HASM进行高精度建模,介绍HASM模型及其简化实现方法。HASM模型基于层次化与自适应统计思想,通过多层结构捕捉不同尺度特征,自适应调整参数,适用于大规模、高维度数据的分析与预测。MATLAB2022A版本运行测试,展示运行结果。
|
4天前
|
运维 算法
基于Lipschitz李式指数的随机信号特征识别和故障检测matlab仿真
本程序基于Lipschitz李式指数进行随机信号特征识别和故障检测。使用MATLAB2013B版本运行,核心功能包括计算Lipschitz指数、绘制指数曲线、检测故障信号并标记异常区域。Lipschitz指数能够反映信号的局部动态行为,适用于机械振动分析等领域的故障诊断。
|
5天前
|
机器学习/深度学习 算法 芯片
基于GSP工具箱的NILM算法matlab仿真
基于GSP工具箱的NILM算法Matlab仿真,利用图信号处理技术解析家庭或建筑内各电器的独立功耗。GSPBox通过图的节点、边和权重矩阵表示电气系统,实现对未知数据的有效分类。系统使用MATLAB2022a版本,通过滤波或分解技术从全局能耗信号中提取子设备的功耗信息。
|
3月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
191 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
3月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
122 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
|
3月前
|
数据采集 存储 移动开发
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
88 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
|
6月前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混合整数规划的微网储能电池容量规划(matlab代码)
基于混合整数规划的微网储能电池容量规划(matlab代码)
|
6月前
|
算法 调度
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
下一篇
无影云桌面