求2013年数学建模国赛B题附件3拼接答案.题如题.急.多多益善.

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/20 11:30:43
求2013年数学建模国赛B题附件3拼接答案.题如题.急.多多益善.
xXYSX+hˉc,y,TuCx 3STx+/$SKl`6`;,aqgM/0JƁJjĖ{99' ogygGgt|jU\Ez|1/9^=Px7iet8 W+X|ژ{UE=ujM'Jc_/ǂkx'r핲D>to⑺++DDOx@9$H&g2 i"a#v,6"!֤߫_UQQ5dpSw3lͷ@}Qc؈X aX;*AhIRD 8{ևA_0 76tR/)/Dl U4 i2{ ΀TTTD^ݦc1{&E!,(Q7k3[L\S,hޡ*l(UbTv_"=O]% Q!矪Ml|/[ f"T;T;Mָ/pz¤q9;p.8~`r%.W^(ŸVknj<ҋxgss+p:JI1"PnYVOEp+HP,ږLPw;w8s?.\ac/;Zk:^ɯ/P4Rض1LI>aA]#0zI/Ma}+O}NuNB`ڍR8C>W3D$k,nÑ!˶~nhg 7 =͟pž3[ U55)5ebA!=YVE7 "1ڴԙ:XgL` 3u&֙OxϠJ s W DB]mޠ֗Zs!W`ҳj|e>ݠ/H6Y}D3JP[vmCy{=, J}@Q_5&Թ:Hӯ,`\if@stȉN9yIijpX!~t윋M @A廘$ХD E||d_+Ͳ=.fFSBʵk-Jz7 )E|i8G&8<%;xm_j}X }U(r}Ikr -VK']BTcKt@nm]Sr;8 o=x aRԣy|q_V޼Y\?y4i+Ċ+F^@WmEJOWZ77Qk,E@SU ~N=z +רy"x)e2h>WjqCGڵFk7kfvnyw;vC_*kz!

求2013年数学建模国赛B题附件3拼接答案.题如题.急.多多益善.
求2013年数学建模国赛B题附件3拼接答案.题
如题.急.多多益善.

求2013年数学建模国赛B题附件3拼接答案.题如题.急.多多益善.
去交流群看看,我找到代码了,可是执行不了.
clear;
I=imread('附件1');
if(isgray(I)==0)
disp('请输入灰度图像,本程序用来处理128 *128的灰度图像!');
else
if (size(I)~=[128,128])
disp('图像的大小不合程序要求!');
else
H.color=[1 1 1]; %设置白的画布
figure(H);imshow(I);
title('原图像');
zeroImage=repmat(uint8(0),[128 128]);
figure(H); %为分裂合并后显示的图设置画布
meansImageHandle=imshow(zeroImage);
title('块均值图像');
%%%%%设置分裂后图像的大小由于本图采用了128像素的图
blockSize=[128 64 32 16 8 4 2];
%%设置一个S稀疏矩阵用于四叉树分解后存诸数据
S=uint8(128);
S(128,128)=0;
threshold=input('请输入分裂的阈值(0--1):');%阈值
threshold=round(255*threshold);
M=128;dim=128;
%%%%%%%%%%%%%%%%% 分裂主程序%%%%%%%%%%%
while (dim>1)
[M,N] = size(I);
Sind = find(S == dim);
numBlocks = length(Sind);
if (numBlocks == 0)
%已完成
break;
end
rows = (0:dim-1)';
cols = 0:M:(dim-1)*M;
rows = rows(:,ones(1,dim));
cols = cols(ones(dim,1),:);
ind = rows + cols;
ind = ind(:);
tmp = repmat(Sind',length(ind),1);
ind = ind(:,ones(1,numBlocks));
ind = ind + tmp;
blockValues= I(ind);
blockValues = reshape(blockValues,[dim dim numBlocks]);
if(isempty(Sind))
%已完成
break;
end
[i,j]=find(S);
set(meansImageHandle,'CData',ComputeMeans(I,S));
maxValues=max(max(blockValues,[],1),[],2);
minValues=min(min(blockValues,[],1),[],2);
doSplit=(double(maxValues)-double(minValues))>threshold;
dim=dim/2;
Sind=Sind(doSplit);
Sind=[Sind;Sind+dim;(Sind+M*dim);(Sind+(M+1)*dim)];
S(Sind)=dim;
end
[i,j]=find(S); % 用来寻找四叉机分解结果中大小为S的块的位置
set(meansImageHandle,'CData',ComputeMeans(I,S)); % 显示分解结果块均值图像
Numberofbloks=length(i); %计算块数
%sizev=size(v);
end
end
程序2
其实很简单的,看懂下面的语句:
PicName1='a.jpg'; % 要合并的图片1
PicName2='b.jpg'; % 要合并的图片2
PicOut='c.jpg'; %合并的结果
IV1=imread(PicName1); % 读入图片1
IV2=imread(PicName2); % 读入图片2
PicData=[IV1; IV2]; % 如果是纵向拼接用这个
PicData=[IV1 IV2]; % 如果是横向拼接用这个
imwrite(PicData,PicOut,'Quality',75); % 输出图形\附件1\');
if(isgray(I)==0)
disp('请输入灰度图像,本程序用来处理128 *128的灰度图像!');
else
if (size(I)~=[128,128])
disp('图像的大小不合程序要求!');
else
H.color=[1 1 1]; %设置白的画布
figure(H);imshow(I);
title('原图像');
zeroImage=repmat(uint8(0),[128 128]);
figure(H); %为分裂合并后显示的图设置画布
meansImageHandle=imshow(zeroImage);
title('块均值图像');
%%%%%设置分裂后图像的大小由于本图采用了128像素的图
blockSize=[128 64 32 16 8 4 2];
%%设置一个S稀疏矩阵用于四叉树分解后存诸数据
S=uint8(128);
S(128,128)=0;
threshold=input('请输入分裂的阈值(0--1):');%阈值
threshold=round(255*threshold);
M=128;dim=128;
%%%%%%%%%%%%%%%%% 分裂主程序%%%%%%%%%%%
while (dim>1)
[M,N] = size(I);
Sind = find(S == dim);
numBlocks = length(Sind);
if (numBlocks == 0)
%已完成
break;
end
rows = (0:dim-1)';
cols = 0:M:(dim-1)*M;
rows = rows(:,ones(1,dim));
cols = cols(ones(dim,1),:);
ind = rows + cols;
ind = ind(:);
tmp = repmat(Sind',length(ind),1);
ind = ind(:,ones(1,numBlocks));
ind = ind + tmp;
blockValues= I(ind);
blockValues = reshape(blockValues,[dim dim numBlocks]);
if(isempty(Sind))
%已完成
break;
end
[i,j]=find(S);
set(meansImageHandle,'CData',ComputeMeans(I,S));
maxValues=max(max(blockValues,[],1),[],2);
minValues=min(min(blockValues,[],1),[],2);
doSplit=(double(maxValues)-double(minValues))>threshold;
dim=dim/2;
Sind=Sind(doSplit);
Sind=[Sind;Sind+dim;(Sind+M*dim);(Sind+(M+1)*dim)];
S(Sind)=dim;
end
[i,j]=find(S); % 用来寻找四叉机分解结果中大小为S的块的位置
set(meansImageHandle,'CData',ComputeMeans(I,S)); % 显示分解结果块均值图像
Numberofbloks=length(i); %计算块数
%sizev=size(v);
end
end
程序2
其实很简单的,看懂下面的语句:
PicName1='a.jpg'; % 要合并的图片1
PicName2='b.jpg'; % 要合并的图片2
PicOut='c.jpg'; %合并的结果
IV1=imread(PicName1); % 读入图片1
IV2=imread(PicName2); % 读入图片2
PicData=[IV1; IV2]; % 如果是纵向拼接用这个
PicData=[IV1 IV2]; % 如果是横向拼接用这个
imwrite(PicData,PicOut,'Quality',75); % 输出图形
【希望采纳】

啊啊啊啊2

请下载附件参考吧,里面有8个文件,针对B题碎片拼接的matlab代码和文献

 

我能帮的只有这么多了,满意还望采纳

仅供参考,自己可以再斟酌下。

同学你好,我们已经记录了你的ip地址以及你的参赛学校,并向相关单位提交了查询。
根据《全国大学生数学建模竞赛参赛规则》第五条:“抄袭是严重违反竞赛规则的行为,有抄袭行为的参赛队在全国和赛区评阅时视为严重违反竞赛纪律;竞赛开始后参赛队员不能以任何方式(包括电话、电子邮件、网上咨询等)与队外的任何人,包括指导教师,研究及讨论与赛题有关的问题,否则也视为严重违反竞赛纪律。”...

全部展开

同学你好,我们已经记录了你的ip地址以及你的参赛学校,并向相关单位提交了查询。
根据《全国大学生数学建模竞赛参赛规则》第五条:“抄袭是严重违反竞赛规则的行为,有抄袭行为的参赛队在全国和赛区评阅时视为严重违反竞赛纪律;竞赛开始后参赛队员不能以任何方式(包括电话、电子邮件、网上咨询等)与队外的任何人,包括指导教师,研究及讨论与赛题有关的问题,否则也视为严重违反竞赛纪律。”

收起

这个比较有用。

程序