数学建模B题国家一等奖Matlab程序.pdf

上传人:wj 文档编号:3434988 上传时间:2023-05-05 格式:PDF 页数:13 大小:112.06KB
下载 相关 举报
数学建模B题国家一等奖Matlab程序.pdf_第1页
第1页 / 共13页
数学建模B题国家一等奖Matlab程序.pdf_第2页
第2页 / 共13页
数学建模B题国家一等奖Matlab程序.pdf_第3页
第3页 / 共13页
数学建模B题国家一等奖Matlab程序.pdf_第4页
第4页 / 共13页
数学建模B题国家一等奖Matlab程序.pdf_第5页
第5页 / 共13页
数学建模B题国家一等奖Matlab程序.pdf_第6页
第6页 / 共13页
数学建模B题国家一等奖Matlab程序.pdf_第7页
第7页 / 共13页
数学建模B题国家一等奖Matlab程序.pdf_第8页
第8页 / 共13页
数学建模B题国家一等奖Matlab程序.pdf_第9页
第9页 / 共13页
数学建模B题国家一等奖Matlab程序.pdf_第10页
第10页 / 共13页
数学建模B题国家一等奖Matlab程序.pdf_第11页
第11页 / 共13页
数学建模B题国家一等奖Matlab程序.pdf_第12页
第12页 / 共13页
数学建模B题国家一等奖Matlab程序.pdf_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数学建模B题国家一等奖Matlab程序.pdf

《数学建模B题国家一等奖Matlab程序.pdf》由会员分享,可在线阅读,更多相关《数学建模B题国家一等奖Matlab程序.pdf(13页珍藏版)》请在冰点文库上搜索。

数学建模B题国家一等奖Matlab程序.pdf

附录附录3:

程序源文件:

程序源文件1.duqu_image.m文件文件%数据读取预处理文件%将附件中的图片读取到matlab矩阵中,并保存为image_1,image_2,image_3,image_4,image_5a,image_5b%所有附件均放在文件夹D:

B中%图片名序列%图像名称序号b=ones(1,10);0123456789;image_num=strcat(num2str(0*b(:

1),num2str(0*b(:

1),num2str(b(:

2),strcat(num2str(0*b(:

1),num2str(b(:

1),num2str(b(:

2),strcat(num2str(0*b(:

1),num2str(2*b(:

1),num2str(b(:

2),strcat(num2str(0*b(:

1),num2str(3*b(:

1),num2str(b(:

2),strcat(num2str(0*b(:

1),num2str(4*b(:

1),num2str(b(:

2),strcat(num2str(0*b(:

1),num2str(5*b(:

1),num2str(b(:

2),strcat(num2str(0*b(:

1),num2str(6*b(:

1),num2str(b(:

2),strcat(num2str(0*b(:

1),num2str(7*b(:

1),num2str(b(:

2),strcat(num2str(0*b(:

1),num2str(8*b(:

1),num2str(b(:

2),strcat(num2str(0*b(:

1),num2str(9*b(:

1),num2str(b(:

2),strcat(num2str(b(:

1),num2str(0*b(:

1),num2str(b(:

2),strcat(num2str(b(:

1),num2str(b(:

1),num2str(b(:

2),strcat(num2str(b(:

1),num2str(2*b(:

1),num2str(b(:

2),strcat(num2str(b(:

1),num2str(3*b(:

1),num2str(b(:

2),strcat(num2str(b(:

1),num2str(4*b(:

1),num2str(b(:

2),strcat(num2str(b(:

1),num2str(5*b(:

1),num2str(b(:

2),strcat(num2str(b(:

1),num2str(6*b(:

1),num2str(b(:

2),strcat(num2str(b(:

1),num2str(7*b(:

1),num2str(b(:

2),strcat(num2str(b(:

1),num2str(8*b(:

1),num2str(b(:

2),strcat(num2str(b(:

1),num2str(9*b(:

1),num2str(b(:

2),strcat(num2str(2*b(:

1),num2str(0*b(:

1),num2str(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;image_name=strcat(D:

/B/附件2,/,image_num,.bmp);%拼接图像地址和名字forj=1:

nimage_2(:

:

j)=imread(image_name(j,:

);%将图像读入矩阵endsaveimage_2image_2;%附件2图像%读取附件3中的图像n=209;image_name=strcat(D:

/B/附件3,/,image_num,.bmp);%拼接图像地址和名字forj=1:

nimage_3(:

:

j)=imread(image_name(j,:

);%将图像读入矩阵endsaveimage_3image_3;%附件3图像%读取附件4中的图像n=209;image_name=strcat(D:

/B/附件4,/,image_num,.bmp);%拼接图像地址和名字forj=1:

nimage_4(:

:

j)=imread(image_name(j,:

);%将图像读入矩阵endsaveimage_4image_4;%附件4图像%读取附件5a中的图像n=209;image_name=strcat(D:

/B/附件5,/,image_num,a,.bmp);%拼接图像地址和名字forj=1:

nimage_5a(:

:

j)=imread(image_name(j,:

);%将图像读入矩阵endsaveimage_5aimage_5a;%附件5a图像%读取附件5b中的图像n=209;image_name=strcat(D:

/B/附件5,/,image_num,b,.bmp);%拼接图像地址和名字forj=1:

nimage_5b(:

:

j)=imread(image_name(j,:

);%将图像读入矩阵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:

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;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);fori=1:

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_dufujian_1_pipei_du;%保存匹配度结果fujian_1_pipei_du_bian=fujian_1_pipei_du;%用于去除已选的纸条%3.根据匹配度进行拼接fj1_pinjie_jieguo=zeros(1,19);fj1_yong=zeros(1,19);fj1_pinjie_jieguo

(1)=9;fj1_yong(fj1_pinjie_jieguo

(1)=1;fori=1:

18forj=1:

19;if(fj1_yong(j)=1)fujian_1_pipei_du_bian(fj1_pinjie_jieguo(i),j)=0;endendmax_pipei_dufj1_pinjie_jieguo(i+1)=max(fujian_1_pipei_du_bian(fj1_pinjie_jieguo(i),:

);fj1_yong(fj1_pinjie_jieguo(i+1)=1;endsavefj1_pinjie_jieguofj1_pinjie_jieguo;%保存拼接结果fj1_pinjie_jieguo%拼接结果输出到屏幕上%fujian_1_jieguo_tu=zeros(1980,19*72);fori=1:

19fujian_1_jieguo_tu(:

(i-1)*72+1:

i*72)=image_1(:

:

fj1_pinjie_jieguo(i);endsavefujian_1_jieguo_tufujian_1_jieguo_tu;imview(fujian_1_jieguo_tu)5.fujian2_pinjie_jieguo.m文件%此文件,将附件2中的图片进行拼接%1.先统计出附件2所有纸条的左右边界像素qian,hou%2.计算匹配度%3.根据匹配度进行拼接%1.先统计出附件2所有纸条的左右边界像素qian,houloadimage_2;form=1:

19qian(:

m)=image_2(:

1,m);hou(:

m)=image_2(:

72,m);end%2.计算匹配度%图像0-1化qian_01=qian=255;hou_01=hou=255;%匹配度fujian2_pipei_du=zeros(19,19);forj=1:

19fori=1:

19fujian2_pipei_du(i,j)=sum(qian_01(:

i)=hou_01(:

j)/1980;endendsavefujian_2_pipei_dufujian2_pipei_du;%3.根据匹配度进行拼接fj2_pinjie_jieguo=zeros(1,19);fj2_pinjie_jieguo

(1)=4;fori=1:

18max_pipei_dufj2_pinjie_jieguo(i+1)=max(fujian2_pipei_du(:

fj2_pinjie_jieguo(i);endsavefj2_pinjie_jieguofj2_pinjie_jieguo;fj2_pinjie_jieguofujian_2_jieguo_tu=zeros(1980,19*72);fori=1:

19fujian_2_jieguo_tu(:

(i-1)*72+1:

i*72)=image_2(:

:

fj2_pinjie_jieguo(i);endsavefujian_2_jieguo_tufujian_2_jieguo_tu;imview(fujian_2_jieguo_tu)6.fujian_3_fenzu.m文件文件%1.将11*19的纸条,分成11组,即先把属于同一组的图片归组,依据就是“每个纸条的上边界空行数”或者“汉字数”loadimage_3;fori=1:

209image_hang_he(:

i)=sum(image_3(:

:

i),1);end%若为空格则标记为1,并统计空格的个数。

若为汉字则标记为0,并统计汉字的个数。

将结果放入矩阵image_hang_he_18360中fori=1:

209he_18360=0;%若一行都是空格,则他的像素和为72*255=18360forj=1:

180if(image_hang_he(1,i)=18360)index=1;if(image_hang_he(j,i)=18360)he_18360=he_18360+1;elsebreak;endelseindex=0;if(image_hang_he(j,i)=18360)he_18360=he_18360+1;elsebreak;endendendimage_hang_he_18360(1,i)=he_18360;image_hang_he_18360(2,i)=index;end7.fj_3_hang_jieguo.mfunctionfj_3_hang_jieguo=f_fj3_hang_pinjie(image_3,A1)%A1为附件3的一组%例如A1=5032358921191301441916614218719312295517918996;%A1行所选择的图片%输入参数%将A1行的这些图片的最左边(第一列)的像素放入fujian3_1qian。

将这些图片做右边(最后一列)的像素放入fujian3_1hou。

%loadimage_3;fujian3_1qian=zeros(180,19);fori=1:

19fujian3_1qian(:

i)=image_3(:

1,A1(i);endfujian3_1hou=zeros(180,19);fori=1:

19fujian3_1hou(:

i)=image_3(:

72,A1(i);end%图像0-1化qian_01=fujian3_1qian=255;hou_01=fujian3_1hou=255;%匹配度fujian_3_pipei_du=zeros(19,19);liaxu_fazhi=5;fori=1:

19forj=1:

19if(j=i)%qian_hou_he=hou_01(:

i)+qian_01(:

j);%fujian_3_pipei_du(i,j)=sum(qian_hou_he=0)+(qian_hou_he=2)*2-(qian_hou_he=1)*3)/180;fujian_3_pipei_du(i,j)=sum(hou_01(:

i)=qian_01(:

j)/180;%fujian_3_pipei_du(i,j)=f_lianxu_pipei_du(hou_01(:

i),qian_01(:

j),liaxu_fazhi);elsefujian_3_pipei_du(i,j)=0;endendend%savefujian_3_pipei_dufujian_3_pipei_du;fj_3_pinjie_jieguo=zeros(1,19);fj_3_pinjie_yong=zeros(1,19)fj_3_pinjie_jieguo

(1)=1;%输入参数fj_3_pinjie_yong(3)=1;fori=1:

18forj=1:

19;if(fj_3_pinjie_yong(j)=1)fujian_3_pipei_du(fj_3_pinjie_jieguo(i),j)=0;endendmax_pipei_dumax_pipei_index=max(fujian_3_pipei_du(fj_3_pinjie_jieguo(i),:

);fj_3_pinjie_jieguo(i+1)=max_pipei_index;fj_3_pinjie_yong(max_pipei_index)=1;endfj_3_hang_jieguo=zeros(1,19);fori=1:

19fj_3_hang_jieguo(i)=A1(fj_3_pinjie_jieguo(i);end%A1fj_3_pinjie_jieguofj_3_hang_jieguofigure;imshow(image_3(:

:

fj_3_hang_jieguo

(1),image_3(:

:

fj_3_hang_jieguo

(2),image_3(:

:

fj_3_hang_jieguo(3),image_3(:

:

fj_3_hang_jieguo(4).,image_3(:

:

fj_3_hang_jieguo(5),image_3(:

:

fj_3_hang_jieguo(6),image_3(:

:

fj_3_hang_jieguo(7),image_3(:

:

fj_3_hang_jieguo(8).,image_3(:

:

fj_3_hang_jieguo(9),image_3(:

:

fj_3_hang_jieguo(10),image_3(:

:

fj_3_hang_jieguo(11),image_3(:

:

fj_3_hang_jieguo(12).,image_3(:

:

fj_3_hang_jieguo(13),image_3(:

:

fj_3_hang_jieguo(14),image_3(:

:

fj_3_hang_jieguo(15),image_3(:

:

fj_3_hang_jieguo(16).,image_3(:

:

fj_3_hang_jieguo(17),image_3(:

:

fj_3_hang_jieguo(18),image_3(:

:

fj_3_hang_jieguo(19);8.fujian_3_pinjie_hang.m文件%此文件,将附件3中的图片分好的组,进行组内拼接,产生源文件的行%行分组情况fujian_3_fenzu_juzh=306496076173207113845566593991051121721812023910692636477582891041231311491621681941025190953559444878859198113122125128137145150165184438146336971127159167175176545794138139154197209629711713272021375364687073798010016316417872848617120334811331341571661992012062816153186112617221111401461511581821831851882051071741981467110905102103109114124152155156195411201411472081151861181695163121180192196192427427788101143148872311574108413324083116129135160161170177200521362045032358921191301441916614218719312295517918996;loadimage_3;fj_3_pinjie_hang=zeros(11,19);fori=1:

11%调用函数f_fj3_hang_pinjie,完成行分组后的

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2