Matlab-零填充

时间:2011-09-28 07:06:23

标签: matlab

如何在matlab上执行此操作?

使用五个像素填充面部图像 边缘周围的厚边缘 图片。显示生成的图像。

必须是脚本上的手动代码。

3 个答案:

答案 0 :(得分:1)

这听起来像是家庭作业,所以我会给你一个提示:

在MATLAB中,很容易将一个矩阵的内容放在另一个矩阵的正确位置。查看矩阵索引的帮助,你应该能够解决它。

答案 1 :(得分:1)

将此功能保存为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)

答案 2 :(得分:1)

我意识到你想自己编写代码,但作为参考,你可以使用PADARRAY函数。例如:

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

screenshot

注意这也适用于多维矩阵(例如RGB图像)