Buscando código MATLAB

Código fuente práctico de MATLAB

1 Lectura y rotación de imágenes

A=imread('');%Leer imagen

subplot( 2,2,1),imshow(A),title('imagen original');% imagen de salida

I=rgb2gray(A);

subplot(2 ,2, 2),imshow(A),title('Imagen en escala de grises');

subplot(2,2,3),imhist(I),title('Histograma de imagen en escala de grises');% Genera el original histograma de imagen

theta = 30;J = imrotate(I,theta);% Intente variar el ángulo, theta.

subplot(2,2,4), imshow(J) ,title('Imagen rotada')

2 Detección de bordes

I=imread('C:\Users\HP\Desktop\Usual Summary\Luffy .jpg');

subtrama(2,2,1),imshow(I),título('imagen original');

I1=edge(I,'sobel');

subplot(2,2,2),imshow(I1),title('detección de bordes sobel');

I2=edge(I,'prewitt'); subplot(2,2,3),imshow(I2),title('detección de bordes previos a Witt');

I3=edge(I,'log');

p>

subplot(2,2,4),imshow(I3),title('detección de bordes de registro');

inversión de 3 imágenes

El programa MATLAB se implementa de la siguiente manera :

I=imread('xian.bmp');

J=doble(I);

J=-J+(256-1); %Transformación lineal de inversión de imagen

H=uint8(J);

subplot(1,2,1),imshow(I);

subplot( 1 ,2,2),imshow(H);

4. Transformación lineal en escala de grises

El programa MATLAB se implementa de la siguiente manera:

I=imread(' xian .bmp');

subtrama(2,2,1),imshow(I);

título('imagen original');

eje ( );

eje en;% mostrar sistema de coordenadas

I1=rgb2gray(I);

subplot(2,2,2),imshow(I1 ) ;

title('Imagen en escala de grises');

eje();

eje activado; %Mostrar sistema de coordenadas

J =imadjust(I1,[0.1 0.5],[]); % de estiramiento local, estirando la escala de grises dentro de [0.1 0.5] a [0 1]

subplot(2,2,3) ,imshow(J );

title('Imagen de transformación lineal [0.1 0.5]');

eje();

cuadrícula activada % red de visualización Línea de cuadrícula

eje activado; %Mostrar sistema de coordenadas

K=imadjust(I1,[0.3 0.7],[]); %Estiramiento local, coloque el sistema de coordenadas dentro de [0.3 0.7] El estiramiento en escala de grises. es [0 1]

subplot(2,2,4),imshow(K);

title('Imagen de transformación lineal [0.3 0.7]');

eje();

cuadrícula activada; %mostrar líneas de cuadrícula

eje activado ; %Mostrar sistema de coordenadas

5. Transformación no lineal

El programa MATLAB se implementa de la siguiente manera:

I=imread('xian.bmp');

p>

I1=rgb2gray(I);

subplot(1,2,1),imshow(I1);

title('Imagen en escala de grises') ;

eje();

cuadrícula activada;%mostrar líneas de cuadrícula

eje activado;%mostrar sistema de coordenadas

J=doble ( I1);

J=40*(log(J+1));

H=uint8(J);

subtrama(1,2 , 2),imshow(H);

title('Imagen de transformación logarítmica');

axis();

cuadrícula activada %display grid Line;

eje activado; % muestra el sistema de coordenadas

4. Ecualización del histograma

El programa MATLAB se implementa de la siguiente manera:

I=imread ('xian.bmp');

I=rgb2gray(I);

figura;

subtrama(2,2,1);

imshow(I);

subtrama(2,2,2);

imhist(I);

I1=histeq(I) ;

figura;

subtrama(2,2,1);

imshow(I1);

subtrama(2,2 ,2);

imhist(I1);

5. Filtro de suavizado lineal

Utilice MATLAB para implementar el método de promedio de dominio para suprimir el ruido:

I=imread('xian.bmp');

subtrama(231)

imshow(I)

título('imagen original ')

I=rgb2gray(I);

I1=imnoise(I,'sal y pimienta',0.02);

subtrama(232)

imshow(I1)

title('Imagen con ruido de sal y pimienta agregado')

k1=filter2(fspecial('average',3),I1 )/255; %Realizar filtrado de suavizado de plantilla 3*3

k2=filter2(fspecial('average',5),I1)/255; %Realizar filtrado de suavizado de plantilla 5*5 k3=filter2(fspecial ('average' ,7),I1)/255; % realiza filtrado de suavizado de plantilla 7*7

k4=filter2(fspecial('average',9),I1)/255; 9 filtrado de suavizado de plantilla

subplot(233),imshow(k1);title('3*3 filtro de suavizado de plantilla');

subplot(234),imshow(k2); title('5 *5 Filtro de suavizado de plantilla');

subplot(235),imshow(k3);title('7*7 Filtro de suavizado de plantilla');<

/p>

subplot(236),imshow(k4);title('filtro de suavizado de plantilla 9*9');

6. Filtro mediano

Utilice el procedimiento MATLAB implementar el filtrado mediano es el siguiente:

I=imread('xian.bmp');

I=rgb2gray(I);

J=imnoise ( I,'salt&pepper',0.02);

subplot(231),imshow(I);title('imagen original');

subplot(232),imshow(J ) ;title('Agregar imagen de ruido de sal y pimienta');

k1=medfilt2(J); %Realizar filtrado de mediana de plantilla 3*3

k2=medfilt2(J,) ; % Realizar filtrado de mediana de plantilla 5*5

k3=medfilt2(J,); % Realizar filtrado de mediana de plantilla 7*7

k4=medfilt2(J,); *9 Filtro de mediana de plantilla

subplot(233),imshow(k1);title('3*3 Filtro de mediana de plantilla');

subplot(234),imshow( k2) ;title('filtro de mediana de plantilla 5*5');

subplot(235),imshow(k3);title('filtro de mediana de plantilla 7*7');

subtrama (236),imshow(k4);title('filtro mediano de plantilla 9*9');

7. Utilice el operador de Sobel y el laplaciano para enfocar la imagen:

I=imread. ('xian.bmp');

subtrama(2,2,1),imshow(I);

título('Imagen original ');

eje();

cuadrícula activada; %Mostrar líneas de cuadrícula

eje activado;%Mostrar sistema de coordenadas

I1=im2bw(I);

subtrama(2,2,2),imshow(I1);

título('Imagen binaria');

eje();

cuadrícula activada;%mostrar líneas de cuadrícula

eje activado;%mostrar sistema de coordenadas

H=fspecial('sobel'); %Seleccionar operador sobel

J =filter2(H,I1); %Operación de convolución

subplot(2,2,3),imshow(J);

title('El operador Sobel agudiza la imagen');

eje();

cuadrícula activada; %Mostrar líneas de cuadrícula

eje activado;%Mostrar sistema de coordenadas

h=[0 1 0,1 -4 1,0 1 0]; %Operador laplaciano

J1=conv2(I1,h ,'same');% operación de convolución

subplot(2,2 ,4),imshow(J1);

title('El operador laplaciano agudiza la imagen ');

axis();

cuadrícula activada; %Mostrar cuadrícula líneas

eje activado; %Mostrar sistema de coordenadas

8. El operador de gradiente detecta bordes

Utilice MATLAB para implementar de la siguiente manera:

I =imread('xian.bmp');

subplot(2,3, 1);

imshow(I);

title('imagen original ');

eje();

>

cuadrícula activada; %mostrar líneas de cuadrícula

eje activado; %mostrar sistema de coordenadas

I1=im2bw(I);

subplot(2, 3,2);

imshow(I1);

title('Imagen binaria');

eje();

cuadrícula activada; %Mostrar líneas de cuadrícula

eje activado; %Mostrar sistema de coordenadas

I2=edge(I1,'roberts');

figura;

subplot(2,3,3);

imshow(I2);

title('resultado de segmentación del operador de Roberts');

eje();

cuadrícula activada; %Mostrar líneas de cuadrícula

eje activado; %Mostrar sistema de coordenadas

I3=edge(I1, 'sobel');

subplot(2,3,4);

imshow(I3);

title('resultado de segmentación del operador sobel');

eje();

cuadrícula activada; %Mostrar líneas de cuadrícula

eje activado; %Mostrar sistema de coordenadas

I4= borde(I1,'Prewitt' );

subplot(2,3,5);

imshow(I4);

title('Resultado de segmentación del operador Prewitt');

eje();

cuadrícula activada; %mostrar líneas de cuadrícula

eje activado; %mostrar sistema de coordenadas

9. /p>

Utilice el programa MATLAB para implementar lo siguiente:

I=imread('xian.bmp');

subplot(2,2,1);

imshow(I);

title('imagen original');

I1=rgb2gray(I);

subplot(2, 2,2);

imshow(I1);

title('Imagen en escala de grises');

I2= edge(I1,'log');

subplot(2,2,3);

imshow(I2);

title('resultado de segmentación del operador de registro');

10. El operador Astuto detecta bordes

El programa MATLAB se implementa de la siguiente manera:

I=imread('xian.bmp'); 2,2,1);

imshow(I);

title('imagen original')

I1 =rgb2gray(I);

subplot(2,2,2);

imshow(I1);

title('Imagen en escala de grises'); (I1,'canny');

subplot(2,2,3);

imshow(I2);

title('resultado de segmentación del operador astuto ');

11. Seguimiento de límites (función bwtraceboundary)

clc

clear al.

l

I=imread('xian.bmp');

figura

imshow(I);

título('original Image');

I1=rgb2gray(I); %Convertir imagen en color a imagen en escala de grises

threshold=graythresh(I1); Calcular para convertir imagen en escala de grises a binaria El umbral requerido para la imagen

BW=im2bw(I1, umbral %Convierte la imagen en escala de grises en una imagen binaria

figura

imshow(BW);

title('Imagen binaria');

dim=size(BW);

col=round(dim(2)/2)- 90; las coordenadas de la columna del punto inicial

row=find(BW(:,col),1 %Calcular las coordenadas de la fila del punto inicial

connectivity=8;

num_points=180;

contour=bwtraceboundary(BW,[row,col],'N',connectivity,num_points);

%Extraer límite

figura

imshow(I1);

espera;

plot(contour(:,2),contour(:,1), 'g ','LineWidth' ,2);

title('Imagen de seguimiento de límites');

12. Transformación de Hough

I= imread(' xian. bmp');

rotI=rgb2gray(I);

subplot(2,2,1);

imshow(rotI);

título('Imagen en escala de grises');

eje();

cuadrícula en

eje en;

BW=edge(rotI,'prewitt');

subplot(2,2,2);

imshow(BW);

título(' imagen prewitt después de la detección del borde del operador');

eje();

cuadrícula activada

eje activado;

[H, T,R]=hough(BW);

subplot(2,2,3);

imshow(H,[],'XData',T,'YData', R,'InitialMagnification','fit');

title('Diagrama de transformación de Hough');

xlabel('\theta'),ylabel('\rho') ;

eje encendido, eje normal, espera;

P=houghpeaks(H,5,'threshold',ceil(0.3*max(H(:)))); /p>

x=T(P(:,2));y=R(P(:,1));

plot(x,y,'s','color ' ,'blanco');

lines=houghlines(BW,T,R,P,'FillGap',5,'MinLength',7);

subplot(2, 2 ,4);,imshow(rotI);

title('Detección de imagen por transformación aproximada');

axis();<

/p>

cuadrícula encendida;

eje encendido;

espera;

max_len=0;

para k= 1:longitud(líneas)

xy=[líneas(k).punto1;líneas(k).punto2];

plot(xy(:,1),xy(: ,2),'LineWidth',2,'Color','green');

plot(xy(1,1),xy(1,2),'x','LineWidth', 2,'Color','amarillo');

plot(xy(2,1),xy(2,2),'x','LineWidth',2,'Color','red ');

len=norm(lines(k).point1-lines(k).point2);

if(len>max_len)

max_len =len;

xy_long=xy;

fin

fin

plot(xy_long(:,1),xy_long(:, 2),'LineWidth',2,'Color','cyan');

13. Método de umbral de histograma

Utilice MATLAB para implementar el método de umbral de histograma:

I=imread('xian.bmp');

I1=rgb2gray(I);

figura;

subtrama(2,2, 1);

imshow(I1);

title('Imagen en escala de grises')

eje();

cuadrícula en; %Mostrar líneas de cuadrícula

eje encendido; %Mostrar sistema de coordenadas

[m,n]=size(I1);%Medir parámetros de tamaño de imagen

GP= zeros(1,256); %Crea previamente un vector que almacene la probabilidad de aparición en escala de grises

para k=0:255

GP(k+1)=length(find(I1=) =k))/(m*n);% Calcula la probabilidad de ocurrencia de cada nivel de escala de grises y guárdalo en la posición correspondiente en GP

end

subplot(2, 2, 2),bar(0:255,GP,'g')% dibujar histograma

title('Histograma en escala de grises')

xlabel('Valor en escala de grises')

ylabel('Probabilidad de ocurrencia')

I2=im2bw(I,150/255

subplot(2,2,3),imshow( I2) ;

title('Imagen segmentada con umbral 150')

axis();

cuadrícula activada; %mostrar líneas de cuadrícula

eje activado; %Mostrar sistema de coordenadas

I3=im2bw(I,200/255 %

subplot(2,2,4),imshow(I3); >

title('Imagen segmentada con umbral 200')

axis();

cuadrícula activada; %mostrar líneas de cuadrícula

eje activada; mostrar sistema de coordenadas

14. Método de umbral automático: método Otsu

Utilice MATLAB para implementar el algoritmo Otsu:

clc

borrar todo

I=imread('xian.bmp');

sub

plot(1,2,1),imshow(I);

título('imagen original')

eje();

cuadrícula activada; Mostrar líneas de cuadrícula

eje en; %Mostrar sistema de coordenadas

level=graythresh(I %Determinar umbral de gris

BW=im2bw(I, nivel) ;

subplot(1,2,2),imshow(BW);

title('Imagen de segmentación del umbral del método Otsu')

axis();

cuadrícula activada; %Mostrar líneas de cuadrícula

eje activado; %Mostrar sistema de coordenadas

15. 'xian.bmp'); %Cargar imagen

I1=rgb2gray(I);

subplot(1,2,1);

imshow(I1) );

title('Imagen en escala de grises')

eje();

cuadrícula activada; %Mostrar líneas de cuadrícula

eje activado ; %Mostrar sistema de coordenadas

se=strel('disk',1); %Generar elementos estructurales circulares

I2=imdilate(I1,se) ; elementos estructurales generados

subplot(1,2,2);

imshow(I2);

title(' Inflate Post-image');

eje();

cuadrícula activada; %mostrar líneas de cuadrícula

eje activado; %mostrar sistema de coordenadas

16. p>

MATLAB implementa la operación de corrosión

I=imread('xian.bmp'); %Load image

I1=rgb2gray( I);

subplot(1,2,1);

imshow(I1);

title('Imagen en escala de grises')

eje();

cuadrícula activada; %Mostrar líneas de cuadrícula

eje activado; %Mostrar sistema de coordenadas

se=strel('disk',1 %Generar elementos estructurales circulares

p>

I2=imerode(I1,se); %Usa los elementos estructurales generados para erosionar la imagen

subplot(1,2,2 );

imshow(I2) );

title('imagen después de la corrosión');

eje();

cuadrícula activada %Mostrar líneas de cuadrícula

eje activado; %Mostrar sistema de coordenadas

17. Operaciones de apertura y cierre

Utilice MATLAB para implementar operaciones de apertura y cierre

I=imread('xian.bmp) '); %Cargar imagen

subplot(2,2,1),imshow(I);

title(' Imagen original');

eje ();

>eje activado; %Mostrar sistema de coordenadas

I1=rgb2gray(I);

subplot(2,2,2),imshow(I1);

title('Imagen en escala de grises');

axis();

eje en; %Mostrar sistema de coordenadas

se=strel('disk',1 ) ; % Utiliza un círculo con un radio de 1 como elemento estructural

I2=imopen(I1,se); %Operación abierta

I3=imclose(I1,se %); Cerrar operación

subplot(2,2,3),imshow(I2);

title('Abrir la imagen después de la operación');

axis( );

eje encendido; %Mostrar sistema de coordenadas

subplot(2,2,4),imshow(I3);

title('Imagen después de cerrar operación') ;

eje();

eje en; %Mostrar sistema de coordenadas

18. I=imread ('xian.bmp');%Cargar imagen

subplot(3,2,1),imshow(I);

title('imagen original');

p>

eje();

eje en;% mostrar sistema de coordenadas

I1=rgb2gray(I);

subplot( 3,2, 2),imshow(I1);

title('Imagen en escala de grises');

eje();

eje encendido;% de visualización sistema de coordenadas

se=strel('disk',1);

I2=imopen(I1,se);% operación abierta

I3=imclose( I1,se );% operación de cierre

subplot(3,2,3),imshow(I2);

title('Abrir la imagen después de la operación');

eje();

eje en;% mostrar sistema de coordenadas

subplot(3,2,4),imshow(I3);

title('Imagen cerrada después de la operación');

axis();

eje en;% mostrar sistema de coordenadas

se=strel('disk', 1);

I4=imopen(I1,se);

I5=imclose(I4,se);

subtrama(3,2,5) ,imshow(I5 );%imagen de operación abierto-cerrado

title('imagen de operación abierto-cerrado');

eje();

eje en ;%mostrar coordenadas Departamento

I6=imclose(I1,se);

I7=imopen(I6,se);

subplot(3,2, 6),imshow (I7);% imagen de operación cerrado-abierto

title('imagen de operación cerrado-abierto');

eje();

eje en;% Mostrar sistema de coordenadas

19. Extracción de límites morfológicos

Utilice MATLAB para implementar de la siguiente manera:

I=imread('xian.bmp') ;% cargar imagen

subplot(1,3,1),imshow(I);

t

itle('imagen original');

eje();

cuadrícula activada;%mostrar líneas de cuadrícula

eje activado;%mostrar sistema de coordenadas

p>

I1=im2bw(I);

subplot(1,3,2),imshow(I1);

title('Imagen binarizada'); /p>

eje();

cuadrícula activada;%mostrar líneas de cuadrícula

eje activado;%mostrar sistema de coordenadas

I2=bwperim (I1 ); %Obtener el perímetro del área

subplot(1,3,3),imshow(I2);

title('Imagen binaria del perímetro del límite');

eje();

cuadrícula activada;

eje activado;

20. Extracción de esqueleto morfológico

Usar MATLAB para implementar lo siguiente:

I=imread('xian.bmp');

subplot(2,2,1),imshow(I);

título('imagen original');

eje();

eje en;

I1=im2bw(I);

subplot(2,2,2),imshow(I1);

title('Imagen binaria');

axis();

eje en ;

I2=bwmorph(I1,'skel',1);

subtrama(2,2,3),imshow(I2);

título ('1 extracción de esqueleto');

axis();

eje en;

I3=bwmorph(I1,'skel', 2);

subtrama(2,2,4),imshow(I3);

título('Extracción del segundo esqueleto');

eje( );

eje en;

21. Extrae directamente las cuatro coordenadas del vértice

I = imread('xian.bmp');

I = I (:,:,1);

BW=im2bw(I);

figura

imshow(~BW)

[ x,y]=getpts

Filtro suave

h=fspecial('average',9);

I_gray=imfilter(I_gray ,h,'replicar ');% filtro de suavizado