comando - subplot title matlab
¿Cómo puedo poner márgenes en una imagen? (4)
La función de padarray
de la caja de herramientas de procesamiento de imágenes se puede usar para este propósito:
B=padarray(A,[1,1])
Tengo una imagen binaria de 18x18 píxeles y quiero poner márgenes alrededor de esta imagen con el fin de obtener una imagen de 20x20 píxeles.
La imagen es binaria y puede ser representada por una matriz de 1s y 0s. Los 0 píxeles son en color negro y los 1 píxeles en color blanco. Necesito poner márgenes de 1 píxel de ceros alrededor de la imagen que tengo.
¿Cómo puedo hacerlo?
Primero haz una matriz de 20 por 20 ceros, Zimg
, luego inserta tu matriz de imágenes en la matriz de ceros:
Zimg(2:end-1,2:end-1)=img;
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.
Primero, obtiene el tamaño de la matriz de la imagen y crea una matriz cero con dos columnas y filas adicionales, después de lo cual puede establecer todo excepto los bordes externos en la matriz de la imagen.
Ejemplo con una matriz no cuadrada de tamaño [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
Vamos a ser hackish:
%// 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