Buscando código MATLAB

Código fuente práctico de MATLAB

1 Lectura y rotación de imágenes

A=imread(''); , 2, 1), imshow(A), title('imagen original');

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'); /p>

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

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

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');

p>

subtrama(2, 2, 2), imshow(I1), título('detección de bordes de sobel');

I2=edge(I,'prewitt');

subtrama(2, 2, 3), imshow(I2), título('detección de bordes previos a Witt');

I3=edge(I, 'log');

subtrama (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=double(I);

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

H=uint8(J);

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

subtrama(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(); p >

eje activado; mostrar sistema de coordenadas

I1=rgb2gray(I);

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

title('Imagen en escala de grises');

axis();

eje activado; mostrar sistema de coordenadas

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

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

p>

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

axis();

cuadrícula en; mostrar líneas de cuadrícula

eje en; mostrar el sistema de coordenadas

K=i

madjust(I1, [0.3 0.7], []); estiramiento local, estirando la escala de grises dentro de [0.3 0.7] a [0 1]

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

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

eje();

cuadrícula activada

eje activado; mostrar sistema de coordenadas

5. Transformación no lineal

El programa MATLAB se implementa de la siguiente manera:

I=imread('xian. bmp') ;

I1=rgb2gray(I);

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

title('imagen en grados de gris' );

eje();

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

eje activado; mostrar sistema de coordenadas

J=double( I1);

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

H=uint8(J);

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

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

eje();

mostrar líneas de cuadrícula

eje encendido; mostrar sistema de coordenadas

4. Ecualización de histograma

El programa MATLAB se implementa de la siguiente manera:

I= imread('xian. bmp');

I=rgb2gray(I);

figura;

subtrama(2, 2, 1);

p>

imshow(I);

subplot(2, 2, 2);

imhist(I);

I1=histeq(I);

figura;

subtrama(2, 1); 2, 2);

imhist(I1);

5. Filtro de suavizado lineal

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

I=imread('xian.bmp');

subtrama(231)

imshow(I)

título('original imagen' )

I=rgb2gray(I);

I1=imnoise(I,'sal&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; Realizar filtro de suavizado de plantilla 7*7

k4=filter2(fspecial('average', 9),I1)/2

55; Realizar filtrado de suavizado de plantilla 9*9

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

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

subplot(235), imshow(k3);'

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

6. Filtro de mediana

Utilice MATLAB para implementar el filtrado de mediana. El programa es el siguiente:

I=imread('xian.bmp');

I=rgb2gray(I);

J=imnoise(I, ' saltamp; pepper', 0.02);

subplot(231), imshow(I);

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,); 5* Filtrado de mediana de 5 plantillas

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

k4=medfilt2(J,); Filtro

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

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

subplot(235), imshow(k3); título('Filtro de mediana de plantilla de 7*7');

subplot( 236); imshow(k4); title('9*9 template mediana filter');

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

I=imread('xian. bmp');

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

título('imagen original');

p>

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(); p>cuadrícula activada; mostrar líneas de cuadrícula

eje activado; mostrar sistema de coordenadas

H=fspecial('sobel'); (H, I1); Operación de convolución

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

title('imagen de nitidez del operador sobel');

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, 'misma' operación de convolución

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

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

eje();

muestra líneas de cuadrícula

eje activado; muestra el sistema de coordenadas

8. El operador de gradiente detecta bordes

Utilice MATLAB para implementar de la siguiente manera:

I=imread(' xian.bmp') ;

subtrama(2, 3, 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) ;

subplot(2, 3, 2);

imshow(I1);

title('Imagen binaria'); /p>

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

eje activado; mostrar sistema de coordenadas

I2=edge(I1,'roberts');

figure;

subplot(2,3,3);

imshow(I2);

title('roberts calcula el resultado de la subsegmentación'); /p>

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'); /p>

eje();

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

eje activado; mostrar sistema de coordenadas

I4=edge(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

p>

9. bordes

El programa MATLAB se implementa de la siguiente manera:

I=imread('xian.bmp');

subplot(2, 2, 1);

imshow(I);

título('imagen original');

I1=rgb2gray(I); 2, 2, 2);

imshow(I1);

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

subplot(2, 2, 3);

imshow(I2);

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

10.Operación astuta

Bordes de subdetección

Utilice el programa MATLAB para implementar de la siguiente manera:

I=imread('xian.bmp');

subplot(2, 2, 1);

imshow(I);

título('imagen original')

I1=rgb2gray(I);

subplot(2, 2, 2);

imshow(I1);

título('imagen en escala de grises'); astuto' );

subplot(2, 2, 3);

imshow(I2);

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

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

clc

borrar todo

I=imread('xian.bmp') ;

p>

figura

imshow(I);

título('imagen original'); ; Convertir la imagen en color a Convertir imagen en escala de grises

threshold=graythresh(I1); Calcule el umbral requerido para convertir una imagen en escala de grises en una imagen binaria

BW=im2bw(I1, umbral) ; Convertir imagen en escala de grises a imagen binaria Convertir la imagen de grados en una imagen binaria

figura

imshow(BW);

title('Imagen binaria');

dim=size(BW);

col=round(dim(2)/2)-90 Calcular 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, [fila, columna], 'N', conectividad, num_points);

Extraer límite

figura

imshow(I1);

espera;

espera;

figura

imshow(I1); p>

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

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

p>

12.Transformación dura

I= imread('xian.bmp');

rotI=rgb2gray(I);

subtrama( 2, 2, 1);

imshow(rotI);

title('Imagen en escala de grises');

eje();

cuadrícula activada

eje en;

BW=edge(rotI,'prewitt');

subplot(2, 2, 2);

imshow(BW);

title('imagen después de la detección de bordes del operador prewitt');

eje();

cuadrícula activada

eje activado;

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

>subplot(2, 2, 3);

imshow(H, [], 'XData', T, 'YData', R, 'InitialMagnification', 'fit'); p>title('Diagrama de transformación de Hough');

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

eje en, eje normal, espera;

P=houghpeaks(H, 5, 'umbral', techo(0.3*max(H(:))));

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

plot(x, y, 's', 'color', 'blanco'); (BW, T, R, P, 'FillGap', 5, 'MinLength', 7);

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

title('Detección de imagen de transformación dura');

eje();

cuadrícula activada

eje activado; en;

max_len=0;

para k=1: longitud(líneas)

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

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

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

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

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

if(lengt;max_len)

max_len=len;

xy_long=xy;

fin

end

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;

subplot(2, 2, 1);

imshow(I1);

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

eje();

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

eje activado; mostrar sistema de coordenadas

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

GP=zeros(1, 256); crear previamente un vector que almacene la probabilidad de ocurrencia en escala de grises

para k= 0: 255

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

fin

subtrama(2, 2, 2), barra(0: 255, GP, 'g') dibujar

Hacer un histograma

title('Histograma en escala de grises')

xlabel('Valor en escala de grises')

ylabel('Probabilidad de ocurrencia')

p>

I2=im2bw(I, 150/255);

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

título('Umbral); 150 Dividir imagen')

eje();

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') p>

eje();

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

eje activado; mostrar sistema de coordenadas

14. Método Otsu

Utilice MATLAB para implementar el algoritmo Otsu:

clc

borrar todo

I=imread('xian.bmp' );

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

título('imagen original')

eje();

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

eje activado; mostrar sistema de coordenadas

nivel=graythresh(I); determinar el umbral de escala de grises

BW= im2bw (I, nivel);

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

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

eje();

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

eje activado; mostrar sistema de coordenadas

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

I1=rgb2gray(I);

subplot(1, 2, 1);

imshow(I1);

title('Imagen en escala de grises')

axis();

mostrar líneas de cuadrícula

eje encendido; mostrar sistema de coordenadas

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

I2=imdilate(I1, se); inflar la imagen

subplot(1, 2, 2)

imshow(I2

title('Imagen inflada');

eje();

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

eje activado; mostrar sistema de coordenadas

16. >MATLAB implementa operación de corrosión

>

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

I1=rgb2gray(I);

subplot(1, 2, 1);

p>

imshow(I1);

title('Imagen en escala de grises')

eje();

mostrar líneas de cuadrícula

eje encendido; mostrar sistema de coordenadas

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

I2=imerode(I1, se); Utilice los elementos estructurales generados para corroer la imagen

subplot(1, 2, 2

imshow(I2

title('Corrosion Post-); image');

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'); 2, 1), imshow(I);

título('imagen original');

eje();

eje en visualización de coordenadas

I1=rgb2gray(I);

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

title('Imagen en escala de grises' ); /p>

axis();

eje activado; Mostrar sistema de coordenadas

se=strel('disk', 1); un elemento estructural

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

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

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

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

eje();

eje en; sistema de coordenadas

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

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

eje encendido; mostrar sistema de coordenadas

18. Abrir y cerrar operaciones combinadas

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

p>

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

título('imagen original');

eje();

eje activado; mostrar sistema de coordenadas

I1=rgb2gray(I);

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

title('Imagen en escala de grises');

eje();

eje activado; sistema de coordenadas de visualización

>se=strel('disk', 1);

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

I3=imclose(I1, se); p>

p>

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

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

eje ();

eje encendido; mostrar sistema de coordenadas

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

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

p>

eje();

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 de apertura y cierre

p>

title('imagen de operación de apertura y cierre');

eje();

eje activado;

I6=imclose (I1, se);

I7=imopen(I6, se);

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

subplot(3, 2, 6), imshow(I7); p>

title('Imagen de operación cerrado-abierto'); p>axis();

eje encendido; mostrar sistema de coordenadas

19. Extracción de límites de aprendizaje de formulario

Utilice MATLAB para implementar de la siguiente manera:

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

subplot(1, 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(1, 3, 2), imshow(I1);

title('Imagen binarizada');

axis();

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

eje activado; mostrar sistema de coordenadas

I2=bwperim(I1);

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

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

axis();

cuadrícula activada;

eje activado;

20. Extracción de esqueleto morfológico

Utilice MATLAB para implementar de la siguiente manera:

I =imread('xian.bmp');

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

título('imagen original');

eje();

eje en;

I1= im2bw(I);

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

title('Imagen binaria');

eje ();

eje en;

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

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

title('1 extracción de esqueleto'); p>eje();

eje encendido

I3 =bwm

orph(I1,'skel',2);

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

title('extracción de 2 esqueletos');

axis();

eje en;

21. Extrae directamente las cuatro coordenadas de vértice

I = imread('xian.bmp ' );

I = I(:,:,1);

BW=im2bw(I);

figura

imshow (~BW)

[x, y]=getpts

Filtro de suavizado

h=fspecial('average', 9);

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