调整大小后替换Matlab中的像素

时间:2016-06-15 09:31:46

标签: matlab image-processing resize image-resizing pixels

我有一个Matlab脚本(见下文),它将一个装满图片的文件夹(490 x 500)调整为一个新的尺寸(512 x 512)。现在,因为原始图片不是正方形,所以在调整大小后会发生的情况是,在每张图片的左侧和右侧,我得到一个白色条带。这可能是一个自动填充器,以保持图片的比例,但同时达到512x512尺寸。

我需要做些什么来摆脱图片两侧的白条?也许用黑色像素替换白色像素,但如何实现策略呢?

clear all
close all

dir = 'D:\matlab_picture_edit\pics'; %location of images
outdir = 'D:\matlab_picture_edit\pics_new'; %location of directory for output images

cd (dir); % go to source dir
fs = filesep
dln = '.'

num = 1 % iterations of transform
images = cellstr(ls(dir)); % list all files in source dir
images = images(3:end); % remove first 2 lines (.., .)

 for h = 1:length(images) % all images
     flnmdel(h,:) = strsplit(images{h},dln) % split up file name
 end

for pic = 1:numel(images)
   image = images{pic};

   img = imread(image);

   img2 = imresize(img, [512, 512]);

   imwrite(img2,[outdir fs flnmdel{pic} '_s.jpg'] )   

end

1 个答案:

答案 0 :(得分:2)

您的代码没有问题。

我在问题中提到的非正方形图像上试过了!您的实际图像可能会有白色空间,当您增加它的大小时,它会变大。