对于给定的来自同一页印刷文字文件的碎纸机破碎纸片(仅纵切),建立碎纸片拼接复原模型和算法,并针对附件1、附件2给出的中、英文各一页文件的碎片数据进行拼接复原。如果复原过程需要人工干预,请写出干预方式及干预的时间节点。复原结果以图片形式及表格形式表达(见【结果表达格式说明】)。对于碎纸机既纵切又横切的情形,请设计碎纸片拼接复原模型和算法,并针对附件3、附件4给出的中、英文各一页文件的碎片数据进行拼接复原。如果复原过程需要人工干预,请写出干预方式及干预的时间节点。复原结果表达要求同上。上述所给碎片数据均为单面打印文件,从现实情形出发,还可能有双面打印文件的碎纸片拼接复原问题需要解决。附件5给出的是一页英文印刷文字双面打印文件的碎片数据。请尝试设计相应的碎纸片拼接复原模型与算法,并就附件5的碎片数据给出拼接复原结果,结果表达要求同上。
关键词: 灰色分析关联度,matlab,单面纵横交错切;,聚类,人工干预,相关性矩阵
一.第一题
思想:第一题是中文和英文图片,各19张,只需找出每行的首图,继续分析每张前面的图的右列像素和下一张图的左像素的相关性。(中文和英文的代码一样,只需要改一下位置)
代码1:
```bash
clear all
close all
clc
fileform = 'C:\Users\Lenovo\Pictures\附件1\*.bmp';
filepathsrc = 'C:\Users\Lenovo\Pictures\附件1\';
files = dir(fileform);
for i = 1:length(files)
image{i} = imread([filepathsrc, files(i).name]);
end
n=numel(files);
[h,z]=size(image{1,1})
for k=1:n
byz(:,k)=image{1,k}(:,1); %将第k张图片的最左边一列放入矩阵byz的第k列
byy(:,k)=image{1,k}(:,z);%将第k张图片的最右边一列放入矩阵byy的第k列
end
%利用页边距寻找第一张图片
for i=1:n
Sum=0;
for j=1:h
if byz(j,i)==255
Sum=Sum+1;
else
break;
end
end
if Sum = = h
f=i;
end
end
paixu=zeros(1,n);
index=1;
paixu(index)=f;
%关联度
guanliandu = ones(n, 1);
% set rho 分辨系数
rho = 0.45; % 分辨系数
i=f;
while index |