如何在matlab上执行此操作?
使用五个像素填充面部图像 边缘周围的厚边缘 图片。显示生成的图像。
必须是脚本上的手动代码。
答案 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)
注意这也适用于多维矩阵(例如RGB图像)