Matlab - нулевое заполнение - PullRequest
       3

Matlab - нулевое заполнение

0 голосов
/ 28 сентября 2011

Как это сделать на matlab?

обнулить изображение лица с ободком толщиной пять пикселей по краям изображения.показать полученное изображение.

Должны быть ручные коды на скрипте.

Ответы [ 3 ]

1 голос
/ 28 сентября 2011

сохранить эту функцию как create_padded_image.m

function padded_image = create_padded_image(image, padding)

if nargin < 2
    % if no padding passed - define it.
    padding = 5;
end

if nargin < 1
    % let's create an image if none is given
    image = rand(5, 4)
end

% what are the image dimensions?
image_size = size(image);


% allocate zero array of new padded image
padded_image = zeros(2*padding + image_size(1), 2*padding + image_size(2))

% write image into the center of padded image
padded_image(padding+1:padding+image_size(1), padding+1:padding+image_size(2)) = image;

end

Затем вызвать ее так:

% read in image - assuming that your image is a grayscale image
$ image = imread(filename);
$ padded_image = create_padded_image(image)
1 голос
/ 28 сентября 2011

Я понимаю, что вы хотите написать это самостоятельно, но для справки вы можете использовать функцию PADARRAY . Пример:

I = imread('coins.png');
II = padarray(I,[5 5],0,'both');
imshow(II)

screenshot

Обратите внимание, что это работает и для многомерных матриц (например, для изображений RGB)

1 голос
/ 28 сентября 2011

Это звучит как домашнее задание, поэтому я просто дам вам подсказку:

В MATLAB очень легко поместить содержимое одной матрицы в другую в точно правильном месте. Проверьте справку по матричной индексации, и вы сможете решить ее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...