У меня есть скрипт Matlab (см. Ниже), который изменяет размер папки с картинками (490 x 500) на новый размер (512 x 512). Теперь, поскольку исходные изображения не являются квадратами, то, что происходит после изменения размера, является то, что слева и справа от каждой картинки я получаю белую полоску. Это, вероятно, автоматический наполнитель, чтобы сохранить пропорцию изображения, но в то же время достичь размера 512x512.Замена пикселей в Matlab после изменения размера
Что мне нужно сделать, чтобы избавиться от этих белых полосок по обе стороны от картин? Возможно, замените белые пиксели черными пикселями, но как достичь этой стратегии?
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
Я запустил ваш код так, как есть, и я получил результат, который вам нужен. т.е. нет пробела. (используя MATLAB R2016a) –
Tahnks @Sardar_Usama, я использую Matlab R2015a. Вы могли бы видеть только пробел только на черном фоне (например, в powerpoint)? Это имеет смысл для меня, потому что первоначальный размер не является квадратным. – Spica
Я пробовал это на не квадратных изображениях, как вы упомянули в вопросе! Нет такой проблемы. Ваши фактические изображения, вероятно, имеют белые пробелы, которые увеличиваются при увеличении размера. Включите образец изображения в свой пост! –