¿Cómo agregar un borde a una imagen en MATLAB?

El borde/marco de la imagen es un límite exterior que se agrega a la imagen. No es parte de la imagen principal. Para una imagen en escala de grises o cualquier imagen en color, podemos agregar un marco binario o en escala de grises, ya que contiene solo un canal. No hay límite para el diseño del marco. Podemos añadir cualquier cosa como marco de la imagen. No hay límite para el tamaño del marco. Todos estos detalles son modificables según los requisitos del usuario.

Función utilizada:

  • La función incorporada imread() se usa para leer la imagen.
  • La función incorporada imtool() se usa para mostrar la imagen.
  • La función incorporada zeros() se usa para crear la array con ceros.
  • La función incorporada rgb2gray( ) se utiliza para convertir una imagen RGB en una imagen en escala de grises.
  • La función incorporada pause() se usa para detener la ejecución durante segundos específicos.

Rol de la función Frame_Image( ): Esta es la función de utilidad. Todas las declaraciones ejecutables se agrupan en esta función, de modo que solo tenemos que hacer una llamada de función para agregar un marco a cualquier imagen de entrada. Esta función toma un solo parámetro, que es la imagen de entrada. Si la imagen está coloreada, primero la convierte en escala de grises y luego le agrega el marco.

Ejemplo:

Matlab

% MATLAB CODE ADDING FRAME TO THE IMAGE
% This function is only for Grayscale images.
function Frame_Image(img)
  
% Convert into grayscale if not.
[x,y,z]=size(img);
if(z==3)
    img=rgb2gray(img);
end
  
% Create frame.
frame=zeros(x+30,y+30);
  
% imtool(frame,[]);
frame(6:10,11:y+20)=255;
frame(x+21:x+25,11:y+20)=255;
frame(6:x+25,6:10)=255;
frame(6:x+25,y+21:y+25)=255;
  
%frame(6:10,11:y+20)=255;
%frame(x+21:x+25,11:y+20)=255;
%frame(6:x+25,6:10)=255;
%frame(6:x+25,y+21:y+25)=255;
%frame(6:10,:)=255;
%frame(x+21:x+25,:)=255;
%frame(:,6:10)=255;
%frame(:,y+21:y+25)=255;
%add image in middle.
frame(16:x+15,16:y+15)=img(:,:);
original_input_image=img;
imtool(original_input_image,[]);
framed_image=frame;
imtool(framed_image,[]);
  
pause(10);
imtool close all;
end
  
% UTILITY CODE
k=imread("cameraman.png");
Frame_Image(k);

Producción:

 

Explicación del código:

  • cuadro=ceros(x+30,y+30); Esta línea crea la nueva imagen con fondo negro.
  • fotograma (6:10,11:y+20)=255; Esta línea agrega una línea de marco horizontal superior.
  • fotograma(x+21:x+25,11:y+20)=255; Esta línea agrega una línea de marco horizontal inferior.
  • fotograma(6:x+25,6:10)=255; Esta línea agrega una línea de marco vertical izquierda.
  • fotograma(6:x+25,y+21:y+25)=255; Esta línea agrega una línea de marco vertical derecha.
  • fotograma(16:x+15,16:y+15)=img(:,:); Esta línea agrega una imagen en el medio.
  • imtool(imagen_enmarcada,[]); Esta línea muestra la imagen enmarcada.

Ejemplo:

Matlab

% MATLAB CODE Add Coloured Frame to the RGB image.
function AddColouredFrame(img)
  
% This function takes colour image only.
[x,y,~]=size(img);
framed_img(x+20,y+20,3)=0;
framed_img=uint8(framed_img);
framed_img(11:x+10,11:y+10,:)=img(:,:,:);
  
% Horizontal Yellow lines on Top and bottom of 3 px.
framed_img(1:3,:,1:2)=255;
framed_img(x+18:x+20,:,1:2)=255;
  
% Vertical Yellow lines on Left and Right of 3 px.
framed_img(:,1:3,1:2)=255;
framed_img(:,y+18:y+20,1:2)=255;
  
% Horizontal Cyan lines on Top and bottom of 4 px.
framed_img(4:7,4:y+17,2:3)=255;
framed_img(x+14:x+17,4:y+17,2:3)=255;
  
% Vertical Cyan lines on Left and Right of 4 px.
framed_img(4:x+17,4:7,2:3)=255;
framed_img(4:x+17,y+14:y+17,2:3)=255;
  
% Horizontal Red lines on Top and bottom of 3 px.
framed_img(8:10,8:y+13,1)=200;
framed_img(x+11:x+13,8:y+13,1)=200;
  
% Vertical Red lines on Left and Right of 3 px.
framed_img(8:x+13,8:10,1)=200;
framed_img(8:x+13,y+11:y+13,1)=200;
imtool(framed_img,[]);
end
  
% Utility code%
k=imread("logo.png");
AddColouredFrame(k);

Producción:

 

 

Explicación del código:

  • framed_img(x+20,y+20,3)=0; Esta línea crea la imagen vacía con fondo negro.
  • framed_img(11:x+10,11:y+10,:)=img(:,:,:); Esta línea agrega la imagen de entrada en el medio del cuadro.
  • framed_img(1:3,:,1:2)=255; Esta línea agrega una línea amarilla horizontal de 3 píxeles de grosor en la parte superior.
  • framed_img(x+18:x+20,:,1:2)=255; Esta línea agrega una línea amarilla horizontal de 3 píxeles de grosor en la parte inferior.
  • framed_img(:,1:3,1:2)=255; Esta línea agrega líneas amarillas verticales de 3 píxeles de grosor a la izquierda.
  • framed_img(:,y+18:y+20,1:2)=255; Esta línea agrega líneas amarillas verticales de 3 píxeles de grosor a la derecha.
  • imtool(imagen_enmarcada,[]); Esto muestra la imagen enmarcada.
  • k=imread(“logotipo.png”); Esta línea lee la imagen de entrada.
  • AddColouredFrame(k); Esta línea llama a la función de marco pasando la imagen de entrada.

Publicación traducida automáticamente

Artículo escrito por pintusaini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *