11111111

for i=1:10
    picname=sprintf('%d-rgb.jpg',i);
    picname="F:\matlab\附件1\"+picname; %读取附件1中的照片
    picture=imread(picname);
    a=picture(1,:,: ); %设a为图像左边缘第一个像素点
    b=picture(700,:,: ); %设b为图像右边缘第一个像素点
    c=picture(:,1,:); %设c为图像上边缘第一个像素点
    d=picture(:,600,:); %设d为图像下边缘第一个像素点
    
     x{i}=a; %将所有图片左边缘的RGB值存入x中
      y{i}=b; %将所有图片右边缘的RGB值存入y中
       z{i}=c; %将所有图片上边缘的RGB值存入z中
        k{i}=d; %将所有图片下边缘的RGB值存入k中
        
end

orignal=k{6}; %人眼确认第一张照片为第六张
orignal=double(orignal); %将RGB值转化为数值型
order=[6 0 0 0 0;0 0 0 0 0]; 
for ii=2:5 %找出位于第一层的四张照片
    rr=1000000000000;
    zz=0;
    for n=1:10
        ss=z{n}; %ss代表第n个图片的上边缘的RGB值
        ss=double(ss); %将RGB值转化为数值型
        for j=1:700
            mm=(ss(j,1,1)-orignal(j,1,1)).^2+(ss(j,1,2)-orignal(j,1,2)).^2+(ss(j,1,3)-orignal(j,1,3)).^2;
            zz=mm+zz; %将原始图片与进行对比的图片的上边缘对应的R G B值分别做差然后进行平方再家相加,作为判断依据
        end
        zz=sqrt(zz); %对上面所求结果开根号
        if zz<rr
            rr=zz; 
            v=n; %嵌套判断,用v来将所嵌套循环次数n记录下来
        end
    end
    orignal=k{v}; %判断出第v张为第二张图片
    orignal=double(orignal); %将RGB值转化为数值型
    order(1,ii)=v; %将第一行图片序列按v的值以此排列进order中
end

for nn=1:5 %进行第二行循环
    orignal=y{order(1,nn)};%设最初第二行第一张照片为第二行第一列照片
    orignal=double(orignal);%将RGB值数值化
    rrr=100000000000;
    for iii=1:10 
        sss=x{iii};%sss代表第iii个图片的左边缘值
        sss=double(sss);%将RGB值转化为数值型
        zzz=0;
        for jj=1:600
            mmm=(sss(1,jj,1)-orignal(1,jj,1)).^2+(sss(1,jj,2)-orignal(1,jj,2)).^2+(sss(1,jj,3)-orignal(1,jj,3)).^2;
            zzz=mmm+zzz;%将原始图片与进行对比的图片的上边缘对应的R G B值分别做差然后进行平方再家相加,作为判断依据
        end
        zzz=sqrt(zzz); %对上面所求结果开根号
        if zzz<rrr
            rrr=zzz;
            h=iii; %嵌套判断,用h来将所嵌套循环次数n记录下来
        end
    end
    order(2,nn)=h; %将第二行图片序列按v的值以此排列进order中
end

    a=sprintf('%d-rgb.jpg',order(1,1));
    a="F:\matlab\附件1\"+a;
    image1=imread(a);
for i=2:5
    b=sprintf('%d-rgb.jpg',order(1,i));
    b="F:\matlab\附件1\"+b;
    image2=imread(b);
    c=[image1,image2];
    image1=c;
    imshow(c);
end
    a=sprintf('%d-rgb.jpg',order(2,1));
    a="F:\matlab\附件1\"+a;
    image1=imread(a);
for n=2:5
    b=sprintf('%d-rgb.jpg',order(2,n));
    b="F:\matlab\附件1\"+b;
    image2=imread(b);
    d=[image1,image2];
    image1=d;
    imshow(d);
end
imshow([c;d])

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值