【发布时间】:2011-09-29 00:58:23
【问题描述】:
如何在matlab上做到这一点?
用五像素零填充面部图像 厚厚的边缘围绕的边界 图片。显示生成的图像。
必须是脚本上的手动代码。
【问题讨论】:
标签: matlab
如何在matlab上做到这一点?
用五像素零填充面部图像 厚厚的边缘围绕的边界 图片。显示生成的图像。
必须是脚本上的手动代码。
【问题讨论】:
标签: matlab
将此函数另存为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)
【讨论】:
这听起来像是作业,所以我只是给你一个提示:
在 MATLAB 中,很容易将一个矩阵的内容精确地放入另一个矩阵的正确位置。查看矩阵索引的帮助,您应该能够解决它。
【讨论】:
我知道您想自己编写代码,但作为参考,您可以使用 PADARRAY 函数。示例:
I = imread('coins.png');
II = padarray(I,[5 5],0,'both');
imshow(II)
请注意,这也适用于多维矩阵(例如 RGB 图像)
【讨论】: