基于模糊C均值聚类的碎纸片拼接复原方法与流程

文档序号:16120354发布日期:2018-11-30 23:07阅读:564来源:国知局

本发明涉及图像拼接领域,尤其是一种基于模糊c均值聚类的图像(碎纸片)拼接复原方法。

背景技术

数字图像拼接是属于图像处理的一个重要研究内容,是上世纪以来发展起来的图像处理技术之一,它是通过将分割开来的图像分块拼接成一幅完整的图像。图像碎片的拼接就属于数字图像拼接的一种,在原图被撕裂成各个碎片后,再通过这些碎片组合起来,得出原来的图像。碎片文件的拼接在司法物件复原、历史文献修复、计算机视觉、计算机图形学、诉讼领域、档案研究以及军事情报获取等领域都有着重要的作用。

模糊c均值聚类算法通过优化目标函数,得到每个样本点对所有类中心的隶属度,从而决定样本点的类属以达到自动对样本数据进行分类的目的,主要用于数据的聚类分析。fcm算法是一种无监督的模糊聚类方法,理论成熟,应用广泛。大部分对碎片拼接复原方法的研究主要集中在碎片轮廓的匹配上,即基于轮廓的碎片拼接技术研究。许多学者提出了大量的算法,如,helena在二维碎片拼合方面做了很多工作,他提出了把多尺度技术应用在曲面匹配过程中(helenacristinadagamaleitao.amulti-scalemethodforthere-assemblyoffragmentedobjects[j].ieeetransactionsonpatternanalysisandmachineintelligence,2002,24(9):1239-1251),该方法有一定的稳定性,但其计算量偏大。wolfson运用串匹配的技术查询最大匹配子串,解决了平面曲线匹配的问题(h.j.wolfson.oncurvematching[j].ieee.transactionsonpatternanalysisandmachineintelligence.1990,12(5):483-489.)。该方法用于解决复杂场景中重叠物体的识别和定位,但对于简洁物体而言,同样会产生计算量大的问题。carlossolana等提出了基于特征匹配的手撕文档重构的方法(carlossolana,edsonjustino.documentreconstructionbasedonfeaturematching[j].ieee.xviiibraziliansymposiumoncomputergraphicsandimageprocessing,2005,12(5):586-593.)。该方法用多边形逼近来减少边界的复杂性,采用提取多边形的特点进行局部重建,可以减少计算的复杂性,但多边形的特征点较难确定。朱延娟等提出基于hausdorffig距离的多尺度轮廓匹配算法(朱延娟,周来水,张丽艳等.基于hausdorff距离的多尺度轮廓匹配算法[j].中国机械工程,2004,15(17):1553-1556)。该方法容易出现碎纸片拼合过程中的重叠现象。



技术实现要素:

本发明的目的是提供一种基于模糊c均值聚类的碎纸片拼接复原方法,针对碎纸片进行预处理,提高了碎纸片分类的准确率,也有利于提高拼接的成功率和效率。

本发明的技术方案:一种基于模糊c均值聚类的碎纸片拼接复原方法,包括以下步骤:

步骤1:通过图片读取函数imread()读取n张碎纸片灰度值,每张碎纸片的灰度矩阵记为pi,(i=1,...,n);

步骤2:二值化处理灰度矩阵pi,二值化处理后矩阵bpi=pi./s,s为阈值;

步骤3:每个灰度矩阵bpi的第一列和最后一列分别记为headi和reari,headi=bpi(:,1),reari=bp(:,end);

步骤4:首先对灰度矩阵bpi进行水平投影处理,结果记为shadow(i,:),shadow矩阵每一行表示一个灰度矩阵的投影向量,再对每个投影向量进行字符、字块的填补处理;

步骤5:采用模糊c均值聚类函数fcm()对投影向量shadow进行聚类,聚类结果记为index,index(k)记录着第k类的碎纸片编号;

步骤6:求得每一类中的最左边碎纸片,计算每个灰度矩阵bpi前m列的灰度值之和grayi,最左边碎纸片的编号为flag为已拼接碎纸片最右边的碎纸片编号,flag=i*

步骤7:初始化i=1,ifi≤length(index(k)),执行步骤8,else执行步骤9;

步骤8:计算编号flag的碎纸片右侧与剩余类内未拼接碎纸片左侧的相似度,记为sflag,j,求出j*号碎纸片拼接在flag号碎纸片右侧,更新flag和i,flag=j*,i=i+1,转向步骤7;

步骤9:根据语义、字形和拼接效果,调整个别错碎纸片的顺序,得到每一类的拼接结果矩阵,记为subpi;

步骤10:每个灰度矩阵subpi的第一行和最后一行分别记为firstrowi和lastrowi,firstrowi=subpi(1,:),lastrowi=subpi(end,:);

步骤11:求得最顶部碎纸片,计算每个灰度矩阵subpi前m行的灰度值之和grayi,最左边碎纸片的编号为flag为已拼接碎纸片最底部的碎纸片编号,flag=i*

步骤12:初始化i=1,ifi<=10,执行步骤13,else执行步骤14;

步骤13:计算编号flag的碎纸条底部与剩余未拼接碎纸条顶部的相似度,记为sflag,j,j*号碎纸片拼接在flag号碎纸条下侧,更新flag和i,flag=j*,i=i+1,转向步骤12;

步骤14:显示拼接好的碎纸片图像。

本发明根据文字特征对碎纸片做了二值化、水平投影、字符字块填补等预处理。然后,采用模糊c均值聚类算法,对预处理好的碎纸片进行分类处理。再根据横向拼接模型进行碎纸片横向拼接,最后根据纵向拼接模型进行纵向拼接,获得拼接原图。本发明提高了碎纸片分类的准确率,也有利于提高拼接的成功率和效率。

附图说明

图1为碎纸片图片(部分)。

图2为应用本发明对图1拼接复原后的图像。

具体实施方式

下面通过实施例,并结合附图,对本发明作进一步具体的说明。

实施例:

步骤1:通过imread()函数读取19张碎纸片灰度值,每张碎纸片的灰度矩阵记为pi,(i=1,...,19);

步骤2:二值化处理灰度矩阵pi,二值化处理后矩阵bpi=pi./255;

步骤3:每个灰度矩阵bpi的第一列和最后一列分别记为headi和reari,headi=bpi(:,1),reari=bp(:,end);

步骤4:对每个灰度矩阵bpi进行字符、字块填补处理,然后再进行水平投影处理,结果记为shadow(i,:),shadow矩阵每一行表示一个灰度矩阵的投影向量,

步骤5:采用模糊c均值聚类函数fcm()对shadow进行聚类,聚类结果记为index,index(k)记录着第k类的碎纸片编号;

步骤6:求得每一类中的最左边碎纸片,计算每个灰度矩阵bpi前10列的灰度值之和grayi,最左边碎纸片的编号为flag为已拼接碎纸片最右边的碎纸片编号,flag=i*

步骤7:初始化i=1,ifi≤length(index(k)),执行步骤8,else执行步骤9;

步骤8:计算编号flag的碎纸片右侧与剩余类内未拼接碎纸片左侧的相似度,记为sflag,j,j*号碎纸片拼接在flag号碎纸片右侧,更新flag和i,flag=j*,i=i+1,转向步骤7;

步骤9:根据语义、字形和拼接效果,调整个别错碎纸片的顺序,得到每一类的拼接结果矩阵,记为subpi;

步骤10:每个灰度矩阵subip的第一行和最后一行分别记为firstrowi和lastrowi,firstrowi=subpi(1,:),lastrowi=subpi(end,:);

步骤11:求得最顶部碎纸片,计算每个灰度矩阵subpi前10行的灰度值之和grayi,最左边碎纸片的编号为flag为已拼接碎纸片最底部的碎纸片编号,flag=i*

步骤12:初始化i=1,ifi<=10,执行步骤13,else执行步骤14;

步骤13:计算编号flag的碎纸条底部与剩余未拼接碎纸条顶部的相似度,记为sflag,j,j*号碎纸片拼接在flag号碎纸条下侧,更新flag和i,flag=j*,i=i+1,转向步骤12;

步骤14:显示拼接好的碎纸片,得到如图2所示的拼接图像。

本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1