xlabel comando change achsenbeschriftung matlab matrix binary-image

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