我有一个18x18像素的二进制图像,我想在此图像周围放置边距,目的是获得20x20像素的图像。
图像是二进制的,它可以用1和0的矩阵表示。 0像素是黑色,1像素是白色。我需要在我拥有的图像周围放置1个零像素的边距。
我该怎么做?
答案 0 :(得分:3)
图像处理工具箱中的padarray
功能可用于此目的:
B=padarray(A,[1,1])
答案 1 :(得分:1)
A=ones(18,18);%// your actual image
[M,N] = size(A);
B = zeros(M+2,N+2);%// create matrix
B(2:end-1,2:end-1) = A; %// matrix with zero edge around.
首先获取图像矩阵的大小,然后创建一个带有两个额外列和行的零矩阵,之后您可以将除外边缘以外的所有内容设置为图像矩阵。
大小为[4x6]
的非方矩阵的示例:
B =
0 0 0 0 0 0 0 0
0 1 1 1 1 1 1 0
0 1 1 1 1 1 1 0
0 1 1 1 1 1 1 0
0 1 1 1 1 1 1 0
0 0 0 0 0 0 0 0
答案 2 :(得分:0)
首先制作一个20乘20的矩阵Zimg
,然后将图像矩阵插入零矩阵中:
Zimg(2:end-1,2:end-1)=img;
答案 3 :(得分:0)
让我们变得束手无策:
%// Data:
A = magic(3); %// example original image (matrix)
N = 1; %// margin size
%// Add margins:
A(end+N, end+N) = 0; %// "missing" values are implicitly filled with 0
A = A(end:-1:1, end:-1:1); %// now flip the image up-down and left-right ...
A(end+N, end+N) = 0; %// ... do the same for the other half ...
A = A(end:-1:1, end:-1:1); %// ... and flip back