Matlab将图像按一定大小进行分割

Matlab将图像按一定大小进行分割

期末图像处理课设需要读取一副遥感图像的道路信息,由于遥感图像太大,做实验时耗时太长,cpu也顶不住,所以将图像按一定大小切割。

%%I需要处理的图像,heigh输出图像高度,length输出图像长度,strout输出文件夹
function cut2piece(I,heigh,length,StrOut)
[l,m,~]=size(I);
x_0=1;
y_0=1;
i=1;
   while(1)
        x_end=x_0+length;
        y_end=y_0+heigh;
       if (x_0<m&&y_0<l&&x_end<=m&&y_end<=l)
           pic=imcrop(I,[x_0,y_0,length,heigh]);
           imwrite(pic,[StrOut '\' num2str(i) '.jpg']);    
           x_0=x_end;
           i=i+1;
           continue
       end
       if(x_0<m&&y_0<l&&x_end>m&&y_end<=l)
           pic=imcrop(I,[x_0,y_0,m-x_0,heigh]);
           imwrite(pic,[StrOut '\' num2str(i) '.jpg']);
           x_0=1;
           y_0=y_end;
           i=i+1;
           continue
       end
       if(x_0<m&&y_0<l&&x_end<=m&&y_end>l)
           pic=imcrop(I,[x_0,y_0,length,l-y_0]);
           imwrite(pic,[StrOut '\' num2str(i) '.jpg']);
           x_0=x_end;
           i=i+1;
           continue
       end
       if(x_0<m&&y_0<l&&x_end>m&&y_end>l)
           pic=imcrop(I,[x_0,y_0,m-x_0,l-y_0]);
           imwrite(pic,[StrOut '\' num2str(i) '.jpg']);
           i=i+1;
           break
       end
    end
end
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值