在matlab中裁剪图像以进行循环

时间:2014-02-25 10:05:36

标签: matlab image-processing crop

我试图在matlab for-loop中剪切一些图像。但是,为了做到这一点,我面临一些问题。我的代码如上:

clear
clc

dir
dir 'D:\christos\DATABASE\animal';
listing = dir('D:\christos\DATABASE\animal');

[m n] =  size(listing);

for indx=3:m
 listing(indx).name
 A = imread(strcat( 'D:\christos\DATABASE\animal\' , listing(indx).name)); 
 [t1 t2] = size(A); imshow(A);
 A = imcrop(A, [ (1/3)*t1 (1/3)*t2  (2/3)*t1 (2/3)*t2 ] );
 %A =  imresize(A, [360, 280]);
 imwrite(A, strcat('D:\christos\DAt\animal\animal_',  int2str(indx-2) , '.jpg'));
end

在某些图像中,它无法正常工作。除了图像已被读取并且大小为t1 t2之外,我无法以我想要的方式裁剪它,因此我得到一个空的A图像。

1 个答案:

答案 0 :(得分:1)

也许有些是彩色图片,所以请使用 -

  

[t1 t2 t3] =大小(A);

并保留其余代码。

使用彩色图像的原始代码,t2将存储 - widthx3而不是宽度本身。