❶ 数学建模问题,求大神!请详细,先奉上50分!
问题一,对于给定的来自同一页印刷文字文件的碎纸机破碎纸片(仅纵切),我们可以建立碎纸片拼接复原模型和算法,并针对附件1、附件2给出的中、英文各一页文件的碎片数据进行拼接复原。对于常规文档碎纸片计算机拼接方法一般利用碎片边缘的尖点特征、尖角特征、面积特征等几何特征,搜索与之匹配的相邻碎纸片并进行拼接,这种基于边界几何特征的拼接方法适用于边缘形状相似的碎纸片。根据附件1、附件2中所给图片,我们可以看出图片只有黑白两种颜色,而且切割时由机器切割,每张图片的大小、形状基本一致。因此,本题的图像拼接不适合采用特征匹配法,只适合采用灰度拼接。我们可以采用灰度匹配模型对附件一、二中的所有图片进行灰度二值法,将图片转化为数值矩阵。这样就可以实现将其文字信号转化为数字信号。最后,我们可以利用matlab编程,将转化后每幅图片的数字矩阵第一列与最后一列按照一定的相似度的衡量法则将相似度高的矩阵所对应的图片进行自动拼接。根据所得的拼接图片进行人眼识别,如果所得图片完整无误,就不需要人工干预。如果所得图片存在错误,则需要采取人工干预。
问题二,对于碎纸机既纵切又横切的情形,我们设计碎纸片拼接复原模型和算法可以在问题一模型和算法的基础上进行改正,并针对附件3、附件4给出的中、英文各一页文件的碎片数据进行拼接复原。我们的基本解题思路是首先将每张图片灰度二值化后形成的矩阵,选取每一个矩阵的第一行与最后一行。然后利用matlab进行编程,先根据数据矩阵的第一行与最后一行进行匹配,从而得出19条纵向拼接而成的图片。然后再将这19张图片进行数据二值化,选取每一个二值化后矩阵的第一列与最后一列,在运用问题一中的matlab程序即可得到一幅完整的图片。如果在进行开始的列拼接过程中出现了错误,则进行人工干预。在完整拼接后,如果所得图片出现错误,我们就进行人工干预,从而修正错误。
问题三,对于所给碎片数据为双面打印文件时,因此我们需要采用不同的模型进行碎纸片拼接复原。附件5给出的是一页英文印刷文字双面打印文件的碎片数据。我们必须设计相应的碎纸片拼接复原模型与算法。附件5中所给的图片,只标出了每一张纸片的两面,但并未确定哪一张为正面,哪一张为反面。并且两面均为同一文字,同一字体,并未有任何区别,
❷ 规则碎纸片的拼接复原技术
摘 要:分析了基于几何特征的碎纸片自动拼接方法的缺点,研究了碎纸片内文字行特征、表格特征特点,以及碎纸片内文字行 特征、表格线特征的获取方法,提出了基于碎片文字行特征或表格特征的碎片半自动拼接算法。根据算法研制了 C 语言计算机 程序,用该程序对一实际例子进行了拼接试验,试验结果表明该方法效果良好。
关键词:碎纸片拼接;图像拼接;模式识别
❸ 如何用matlab处理碎纸片拼接问题
用matlab处理碎纸片拼接:
1、思路:
分别用n个变量储存n个碎纸片图像,然后用矩阵拼接的方式把碎纸片拼接。
2、具体代码:
clear all
close
I1=imread('008.bmp');
I2=imread('014.bmp');
I3=imread('012.bmp');
I4=imread('015.bmp');
I5=imread('003.bmp');
I6=imread('010.bmp');
I7=imread('002.bmp');
I8=imread('016.bmp');
I9=imread('001.bmp');
I10=imread('004.bmp');
I11=imread('005.bmp');
I12=imread('009.bmp');
I13=imread('013.bmp');
I14=imread('018.bmp');
I15=imread('011.bmp');
I16=imread('007.bmp');
I17=imread('017.bmp');
I18=imread('000.bmp');
I19=imread('006.bmp');
a=[I1,I2,I3,I4,I5,I6,I7,I8,I9,I10,I11,I12,I13,I14,I15,I16,I17,I18,I19];
imshow(a)
figure;
I1=imread('003.bmp');
I2=imread('006.bmp');
I3=imread('002.bmp');
I4=imread('007.bmp');
I5=imread('015.bmp');
I6=imread('018.bmp');
I7=imread('011.bmp');
I8=imread('000.bmp');
I9=imread('005.bmp');
I10=imread('001.bmp');
I11=imread('009.bmp');
I12=imread('013.bmp');
I13=imread('010.bmp');
I14=imread('008.bmp');
I15=imread('012.bmp');
I16=imread('014.bmp');
I17=imread('017.bmp');
I18=imread('016.bmp');
I19=imread('004.bmp');
b=[I1,I2,I3,I4,I5,I6,I7,I8,I9,I10,I11,I12,I13,I14,I15,I16,I17,I18,I19];
imshow(b)
(3)碎纸片复原算法扩展阅读:
matlab使用技巧:
1、在编写Matlab程序的时候,需要可以用 % 来注释掉代码,或者可以直接使用快捷键【Ctrl + R】来注释程序;
2、同时如果需要取消注释代码,可以选择直接去除%或者使用快捷键【Ctrl + T】来取消注释;
3、可以选择【Edit】,之后点击【Copy Figure】,新建Word文档,点击【粘贴】,之后就可以看到复制的图片了
❹ 数学建模
2013高教社杯全国大学生数学建模竞赛B题
评阅要点[说明]本要点仅供参考,各赛区评阅组应根据对题目的理解及学生的解答,自主地进行评阅。
本题要求对数据提取合适的特征、建立合理有效的碎纸片拼接复原模型。可以考虑的特征有邻边灰度向量的匹配、按行或按列对灰度求和、行距等。关于算法模型,必须有具体的算法过程(如流程图、算法描述、伪代码等)及设计原理。虽然正确的复原结果是唯一的,但不能仅从学生提供的复原效果来评定学生解答的好坏,而应根据所建的数学模型、求解方法和计算结果(如复原率)三方面的内容做出评判。另一方面,评判中还需要考虑人工干预的多少和干预时间节点的合理性。问题1.仅有纵切文本的复原问题由于“仅有纵切”,碎纸片较大,所以信息特征较明显。一种比较直观的建模方法是:按照某种特征定义两条碎片间的(非对称)距离,采用最优Hamilton路或最优Hamilton圈(即TSP)的思想建立优化模型。关于TSP的求解方法有很多,学生在求解过程中需要注意到非对称距离矩阵或者是有向图等特点。还可能有种种优化模型与算法,只要模型合理,复原效果好,都应当认可。本问题相对简单,复原过程可以不需要人工干预,复原率可以接近或达到100%。问题2. 有横、纵切文本的复原问题一种较直观的建模方法是:首先利用文本文件的行信息特征,建立同一行碎片的聚类模型。在得到行聚类结果后,再利用类似于问题1中的方法完成每行碎片的排序工作。最后对排序后的行,再作纵向排序。本问题的解法也是多种多样的,应视模型和方法的合理性、创新性及有效性进行评分。例如,考虑四邻近距离图,碎片逐步增长,也是一种较为自然的想法。问题3.正反两面文本的复原问题这个问题是问题2的继续,基本解决方法与问题2方法相同。但不同的是:这里需要充分利用双面文本的特征信息。该特征信息利用得好,可以提升复原率。 在阅卷过程中,可以考虑学生对问题的扩展。例如,在模型的检验中,如果学生能够自行构造碎片,用以检验与评价本队提出的拼接复原模型的复原效果,可考虑适当加分。阅卷时应有程序,程序的运行结果应和论文给出的结果一致。
clear %释放空间
clc %清屏
%图片数据读取
left_col = [];
right_col = [];
for fp = 0 : 208
str = int2str(fp);
if fp < 10
name = ['0' '0' str '.bmp'];
elseif fp >= 10 & fp < 100
name = ['0' str '.bmp'];
else
name = [str '.bmp'];
end
a = imread(name);
[m,n] = size(a);
left_col = [left_col a(:,1)];
right_col = [right_col a(:,n)];
end
%读取完毕
left_col = double(left_col);%类型转换
right_col = double(right_col);
% 找纸片最左边(left_col)像素全为255(空白)的所有列
row = 1;
for bi=1:209;
number=length(find(left_col(:,bi)==255));
if number == 180
S(row,1)=bi;%保存第一列像素为空(灰度值:255)的放在数组S第一列
row = row + 1;
end
end
S = [S(:,1) zeros(row-1,18)];%矩阵初始化
O = [ones(row-1,19)]; %初始化一个单位矩阵
sign = 1;
w = 0;
for r=1:row-1;%行
for p=1:18;%列p+1
num = 10000000000;%使num足够大
for j=1:209;
count = 0;
count = length(find(S==j));%除去重复
if count ~= 0
continue;
else
blank = length(find(right_col(:,S(r,p)) == 255));%如果碎纸片右边界全为255(即空白),则跳出,终止此行后面拼接
if blank == 180
sign = 0;
break;%跳出本循环,进入p循环
else
ri=right_col(:,S(r,p));%计算左右拼接精确度
le=left_col(:,j);
c=ri-le;
c = c.^2;
error=sum(c(:));
end
if num >= error %找出差值最小的,精确度最高
num = error;
w = j;
end
end
end
if sign == 0
sign = 1;
break; %跳出p循环,进入r循环
else
S(r,p+1)=w; %二维数组储存每个碎纸片拼接位置
end
end
end
S = S - O; %数据整理,图片从000.bmp开始,数组下标从1开始
❺ 碎纸片的拼接模型怎么做呀,数学建模
第1步:利用MATLAB软件[1]依次读取附件1(或附件2)中的所有碎纸片图像,其中图片标记为 ;
第2步:利用MATLAB软件中的im2bw函数对所有碎纸片图像进行二值化处理[2],即所有的碎纸片都用仅包含0或1的二维矩阵 表示,其中1表示白色,0表示黑色;
第3步:依次提取矩阵 的第1列与最后1列元素,分别标记为 与 ;
第4步:将 中元素全为1所对应的碎片挑选出来,作为拼接复原图像的左边第1条碎片,并标记为 ;
第5步:将 的最后1列元素分别与剩余碎纸片的第1列元素作点积运算并求和,其中和值最大者即为与 最为匹配的碎纸片[3],记作 ,并将其放在拼接复原图像的左边第2条;
第6步:依此类推,得到 , ,……, ,最后得到拼接复原图像 。
根据上述算法,利用MATLAB软件编程(程序见附录1)可得问题1中附件1与附件2的碎片拼接顺序结果如表1与表2所示;附件1与附件2的拼接复原图像见附录2与附录3所示。
❻ 数学建模碎纸片的拼接复原,如何求第一行文字中心位置
残片复原(reconstructing shredded documents)的问题有多种研究策略,全人工不可能,全自动也不可能,所以,主流解决方案是结合类似于拼图游戏的手工复原方法和进行匹配和搜寻的计算机算法。
其解决方案是这样的。首先,该队伍设计出算法,基于纸张碎片的边缘性状等特征,能够自动搜寻到最可能匹配的纸张碎片对。接着,这三人号召众亲朋好友对这些可能的碎片对进行人工筛选。夜以继日的奋战之后,拼凑出了最后的结果。古德介绍说:“我们的算法基于计算机视觉、图形学,并且结合了传统的仿真软件,才能达到高效和有效。”
❼ 碎纸复原的魔术是怎么做到的
这个需要道具的,去魔术店问问吧,这个道具还有个名字叫“碎纸还原”,很简单的一个道具,并且很便宜。
❽ 数学建模 碎纸片的拼接复原
首先假设旋转后的碎片像素高度为H,每行的像素宽度保 存在数组肼晒Ir(七).(扣l,2.⋯.Ⅳ)内.每行的宅白点数保存 在数组6缸n女chr(々),(扣1,2.⋯,Ⅳ)内,总的文字图像个数变 量设为od内l研.文字行高度和变量为c^a觑劬,,夸它们的 初值为O.即令矾d恤m卜0.西口触鲫卜0,则文字图像个数 和文字行高和可按下述算法计算: (”戽咖.表示从碎片最低点开始从下往上扫描。 (2)t一抖l,判断扫Ⅳ否,如果大于,结束.否则转(3)。 (3)判断pnr凸f(I)<20否.也即判断该行碎片宽度是否小 于20个像素宽度,如果小于,转(2).否则转(4)。 (4)判断Pnf西f耻)一6缸Htof似)<5否,也即判断该行白 点个数与该行像素点宽度的差是否在5范围内.小于5.表示该 行是空白行,转(5),否则表示不是空白行,转(2)。 (5)记下该行的序号七.,寻找下一个空白行号七,.判断女: 是否存在.如果存在,转(6).否则表示扫描到最高点,扫描过 程结束。 (6)判断女,一≈,>10否,即要求文字块图像高度应大于某 个最小值,这里为lO,如果不作此限制.那么表格线也可能被 认为是文字行,这是不允许的。若大于文字图像最小高度.转 (7),否则.I+-女,,转(2)。 (7)计算行t,,七,内的文字图像个数肌,注意文字图像的 宽度与高度啦:一七.)的比值应在{~3之问.不在此比值范围的 ) 图像不应统计。 (8)判断卅>0否,大于则c异n^鼬肿卜c帕内lm+m,c^口r如. 瞎由卜西口般动,+岛一而,转(9).如果m等于0.不累加文字总 个数和文字行高度,也转(9),显然t,^,行位置就是文字行的 y坐标位置。 (9)t+.t,,寻找下一个序号为女,的空白行,t、应该小于 .E,,同时第t,+l行不是空白点行.如果存在t,,则七÷_^,一l, 转(2),否则结束。 由于篇幅限制.未给出步骤(5)中的“寻找下一个空白行 号膏:”,步骤(7)中“计算行七,,七:内的文字图像的个数研”,以 及步骤(9)中“寻找下一个序号为t,的空白行”算法具体过程, |
❾ 碎纸复原算法。 阶乘原理 与碎纸片复原算法相关的资料
热点内容
看帧率app如何使用
浏览:523
从DHC服务器租用IP地址
浏览:473
编译怎么学
浏览:329
数码管显示0到9plc编程
浏览:665
服务器是为什么服务的
浏览:765
java定义数据类型
浏览:874
安卓pdf手写
浏览:427
什么是app开发者
浏览:284
android闹钟重启
浏览:101
程序员失职
浏览:520
在云服务器怎么改密码
浏览:588
服务器pb什么意思
浏览:942
51驾驶员的是什么app
浏览:672
php静态变量销毁
浏览:890
编程买苹果电脑
浏览:764
flac算法
浏览:501
reactnative与android
浏览:665
程序员是干什么的工作好吗
浏览:260
kbuild编译ko
浏览:473
条件编译的宏
浏览:568
|