数学建模B题国家一等奖Matlab程序_精品文档资料下载.pdf
《数学建模B题国家一等奖Matlab程序_精品文档资料下载.pdf》由会员分享,可在线阅读,更多相关《数学建模B题国家一等奖Matlab程序_精品文档资料下载.pdf(13页珍藏版)》请在冰豆网上搜索。
,1),num2str(2*b(:
1),num2str(3*b(:
1),num2str(4*b(:
1),num2str(5*b(:
1),num2str(6*b(:
1),num2str(7*b(:
1),num2str(8*b(:
1),num2str(9*b(:
2),strcat(num2str(b(:
2),strcat(num2str(2*b(:
2),;
%5读取所有附件中的图片%读取附件1中的图像n=19;
image_name=strcat(D:
/B/附件1,/,image_num,.bmp);
%拼接图像地址和名字forj=1:
nimage_1(:
:
j)=imread(image_name(j,:
);
%将图像读入矩阵endsaveimage_1image_1;
%附件1图像%读取附件2中的图像n=19;
/B/附件2,/,image_num,.bmp);
nimage_2(:
%将图像读入矩阵endsaveimage_2image_2;
%附件2图像%读取附件3中的图像n=209;
/B/附件3,/,image_num,.bmp);
nimage_3(:
%将图像读入矩阵endsaveimage_3image_3;
%附件3图像%读取附件4中的图像n=209;
/B/附件4,/,image_num,.bmp);
nimage_4(:
%将图像读入矩阵endsaveimage_4image_4;
%附件4图像%读取附件5a中的图像n=209;
/B/附件5,/,image_num,a,.bmp);
nimage_5a(:
%将图像读入矩阵endsaveimage_5aimage_5a;
%附件5a图像%读取附件5b中的图像n=209;
/B/附件5,/,image_num,b,.bmp);
nimage_5b(:
%将图像读入矩阵endsaveimage_5bimage_5b;
%附件5a图像2.f_hang_left_right.m文件文件functionleft_zi_changright_zi_chang=f_hang_left_right(image_hang)%此函数计算一行字左右两端汉字的长度%image_hang表示附件图片中第几行字%image_hang=image_1(106:
146,:
1);
%取行rowcol=size(image_hang);
image_01=image_hang=200;
%01化图形,0表示汉字,1表示背景image_hang_he=sum(image_01,1);
%对列求和%找汉字hanzi_fa_zhi=row;
%表示空格kong_ge_chang=3;
%空格的长度hang_he_01=image_hang_he=hanzi_fa_zhi;
if(hang_he_01
(1)=0)%本行左边开头为汉字,统计汉字的长度fori=1:
col-kong_ge_changif(sum(hang_he_01(i:
i+kong_ge_chang-1)=kong_ge_chang)break;
endendleft_zi_chang=i-1;
elseleft_zi_chang=0;
endif(left_zi_chang41)left_zi_chang=0;
endif(hang_he_01(col)=0)%本行结束为汉字,统计汉字的长度fori=col:
-1:
kong_ge_changif(sum(hang_he_01(i-kong_ge_chang+1:
i)=kong_ge_chang)break;
endendright_zi_chang=col-i;
elseright_zi_chang=0;
endif(right_zi_chang41)right_zi_chang=0;
end3.f_pi_pei_du.m文件functionleft_zi_changright_zi_chang=f_hang_left_right(image_hang)%此函数计算一行字左右两端汉字的长度%image_hang表示附件图片中第几行字%image_hang=image_1(106:
end4.fujian_1_chengxu.m文件%此文件,将附件1中的图片进行拼接%1.先统计出附件1所有行字的左右汉字长度%2.计算匹配度%3.根据匹配度进行拼接loadimage_1;
%读取附件1数据文件%人工干预计算下列值ding_kong=37;
%ding_kong表示顶端空行zi_gao=41;
%zi_gao表示字的高度zi_kuan=41;
%zi_kuan表示字的宽度konghang_gao=26;
%konghang_gao表示空行的高度hang_shu=27;
%附件1所给文件的汉字总行数%1.先统计出附件1所有行字的左右汉字长度fujian_zitu=zeros(hang_shu,2);
%附件1中的每一个子图的左右汉字长度fujian_1=zeros(27,2,19);
%附件1中所有图的左右汉字长度forj=1:
19zi_ding=ding_kong;
fori=1:
hang_shufujian_zitu(i,1)fujian_zitu(i,2)=f_hang_left_right(image_1(zi_ding+1:
zi_ding+zi_gao,:
j);
zi_ding=zi_ding+zi_gao+konghang_gao;
endfujian_1(:
j)=fujian_zitu;
endsavefujian_1_zuoyou_zichangfujian_1;
%保存字长结果fujian1_pinjie_jieguo=zeros(1,19);
%保存拼接结果的矩阵pipeidu=zeros(1,19);
%用来保存中间匹配度的向量fujian1_pinjie_jieguo
(1)=9;
%人工干预找到的第一个(最左边)的纸条(即,图008.bmp)fa_zhi=0.8;
%匹配度计算时的阀值,大于此阀值的任务匹配正确,小于此值的认为匹配不正确%2.计算匹配度%匹配度fujian_1_pipei_du=zeros(19,19);
19forj=1:
19fujian_1_pipei_du(i,j)=f_pi_pei_du(fujian_1(:
2,i),fujian_1(:
1,j),fa_zhi);
endendsavefujian_1_pipei_du