Red de conocimiento de recetas - Industria de la restauración - Buscar código MATLAB

Buscar código MATLAB

Código fuente práctico de MATLAB

1 Lectura y rotación de imágenes

a = imread('); lectura de imágenes

Gráfico de rama (2, 2, 1), im show (a), título ('imagen de salida original');

I = RGB 2 gris(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>θ = 30°; J = imrotate(I, theta); Intente cambiar el ángulo θ.

Subtrama (2, 2, 4), visualización de mensajes instantáneos (j), título ("imagen rotada")

Detección de 2 bordes

I= imread ('C:\Users\HP\Desktop\Resumen habitual\luffy . jpg ');

Gráfico de rama (2, 2, 1), estoy mostrando (I), título ('imagen original') ;

I1=edge(I,'Sobel');

Subtrama (2, 2, 2), im show (i1), título ('Detección de bordes de Sobel') ;

I2=edge(I, 'prewitt');

Subtrama (2, 2, 3), im show (I2), título ('detección de bordes prewitt') ;

I3=edge(I,' log ');

Subtrama (2, 2, 4), im show (i3), title(' registro de detección de bordes ');

Inversión de 3 imágenes

El programa MATLAB se implementa de la siguiente manera:

I = im read(' xian . BMP ');

j = double(I);

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

h = uint 8(J);

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

Gráfico de rama (1, 2, 2), im show (H);

4. /p>

El programa MATLAB se implementa de la siguiente manera:

I = im read(' xian . BMP ');

El diagrama de rama (2, 2, 1) , imshow( I);

Título ("imagen original");

eje();

Eje en visualización del sistema de coordenadas

I 1 = RGB 2 gris(I);

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

Título ("Imagen en escala de grises");

p>

eje();

Eje activado; mostrar sistema de coordenadas

J=imadjust(I1, [0.1 0.5], []); estirar La escala de grises está entre [0.1.5] y [0.1]

Gráfico de rama (2, 2, 3), estoy show (J);

Título ('Imagen de transformación lineal [0.1.5]');

eje();

La cuadrícula está activada; se muestran las líneas de la cuadrícula

El eje está activado; se muestra el sistema de coordenadas

K=imadjust(I1, [0.3 0.7], []); estiramiento local, estirando la escala de grises entre [0.3-0.7] y [0.1]

Gráfico de rama (2, 2). , 4), im show(K);

Título ('Imagen de transformación lineal [0.3 0.7]');

eje(); está activado; se muestran las líneas de la cuadrícula

El eje está activado; se muestra el sistema de coordenadas

5. implementado de la siguiente manera:

I = im read(' xian . BMP ');

I 1 = RGB 2 gris(I);

Gráfico de rama ( 1, 2, 1), imshow( I 1);

Título("Imagen en escala de grises");

eje();

La cuadrícula está activada ; se muestran las líneas de la cuadrícula

Eje activado; mostrar sistema de coordenadas

j = double(I 1);

>

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

h = uint 8(J);

Gráfico de rama (1, 2, 2), estoy mostrando (H);

Título("Imagen transformada logarítmicamente");

axis();

La cuadrícula está activada; se muestran las líneas de la cuadrícula

Se enciende el eje; se muestra el sistema de coordenadas

4. Ecualización del histograma

El programa MATLAB se implementa de la siguiente manera:

I = estoy leído(' xian . BMP ');

I = RGB 2 gris(I

Imagen

Gráfico de rama (2, 2, 1);

imshow(1);

Gráfico de rama (2, 2, 2);

imhist(1);

I 1 = histeq(I) ;

Imagen;

Gráfico de rama (2, 2, 1);

imshow(I 1);

Gráfico de rama (2, 2, 2);

imhist(I 1);

5. Filtro de suavizado lineal

Uso de MATLAB para implementar. el programa del método promedio regional para suprimir el ruido;

I = im read(' xian . BMP ');

Subtrama (231)

imshow (1 )

title('imagen original')

I = RGB 2 gris(I

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

Subtrama (232)

imshow(I1)

Título ("Imagen con ruido de sal y pimienta")

k 1 = filtro 2(f especial(' promedio ', 3), I 1)/255; filtrado suave de plantilla 3*3.

k2=filter2(fspecial('average ', 5), I 1)/255; para filtro de suavizado de plantilla 5*5 k3 = filter2 (fspecial ('average ', 7), I 1)/ 255; filtrado suave de plantilla 7*7.

k4=filter2(fspecial('average ', 9), I 1)/255; filtrado suave de plantilla 9*9.

Gráfico de rama (233), imshow(k 1); título ('filtrado suave de plantilla 3*3');

Gráfico de rama (234), im show(k2); Título ('Filtrado suave de plantilla 5*5');

Gráfico de rama (235), im show (k3) ('Filtrado suave de plantilla 7*7');

Gráfico de rama (236), im show (k4); título ('filtrado suave de plantilla 9*9');

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

I = im read(' xian . BMP ');

I = RGB 2 gris(I);

J=imnoise( I, 'Salt & Chili', 0.02);

Subtrama (231), imshow(I); título ("imagen original");

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

k 1 = medfilt 2(J); filtrado mediano de plantilla 3*3.

k2=medfilt2(J,); realiza un filtrado de mediana de plantilla de 5*5.

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

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

Gráfico de rama (233), imshow(k 1); título ('filtro de mediana de plantilla 3*3');

Gráfico de rama (234), im show(k2); Title('Filtro de mediana de plantilla 5*5');

Gráfico de rama (235), im show(k3);Title('Filtro de mediana de plantilla 7*7');

Gráfico de rama (236), im show (k4); título ('filtro de mediana de plantilla 9*9');

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

I = im read(' xian . BMP ');

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

Título ("imagen original"); p>

eje();

La cuadrícula está activada; se muestran las líneas de la cuadrícula

El eje está activado; se muestra el sistema de coordenadas

I 1 = im2bw(I);

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

Título ("Imagen binaria"); eje();

La cuadrícula está activada; se muestran las líneas de la cuadrícula

El eje está activado; se muestra el sistema de coordenadas

h = f especial (' Sobel '); seleccione operador sobel

J=filter2(H, I 1); operación de convolución

Gráfico de rama (2, 2, 3), im show( J); p>

Título ("El operador Sobel enfoca la imagen");

eje();

La cuadrícula está activada; se muestran las líneas de la cuadrícula

p>

Eje activado; mostrar sistema de coordenadas

h=[0 1 0, 1 -4 1, 0 1 0]; operador laplaciano

J1= conv2(I1, h, 'Igual '); Operación de convolución

Gráfico de rama (2, 2, 4), imshow(j 1);

Título ('Lapra El operador de Sri Lanka agudiza la imagen');

eje();

La cuadrícula está activada; se muestran las líneas de la cuadrícula

El eje está activado; se muestra el sistema de coordenadas

p >

8. Detección de bordes del operador de gradiente

MATLAB se utiliza para implementar las siguientes funciones:

I = im read(' xian . BMP ');

Gráfico de rama (2, 3, 1);

imshow (1);

Título ("imagen original");

eje();

La cuadrícula está activada; se muestran las líneas de la cuadrícula

El eje está activado; se muestra el sistema de coordenadas

I 1 = im2bw(I);

Gráfico de rama (2, 3, 2);

imshow(I 1

Título ("Imagen binaria"); ;

La cuadrícula está activada; se muestran las líneas de la cuadrícula

El eje está activado; se muestra el sistema de coordenadas

I2=edge(I1, 'Roberts');

Imagen;

Gráfico de rama (2, 3, 3);

imshow(I2);

Título ("segmentación del operador de Roberts resultado") ;

eje();

La cuadrícula está activada; se muestran las líneas de la cuadrícula

El eje está activado; se muestra el sistema de coordenadas

I3=edge (I1, 'Sobel');

Gráfico de rama (2, 3, 4);

im show (I3); p>Título (' resultado de subsegmentación');

eje();

La cuadrícula está activada; se muestran las líneas de la cuadrícula

El eje está girado encendido; se muestra el sistema de coordenadas

I4

=edge(I1, ' Prewitt ');

Gráfico de rama (2, 3, 5);

im show (I4);

Título (" Resultado de segmentación del operador Prewitt");

eje();

La cuadrícula está activada; se muestran las líneas de la cuadrícula

El eje está activado; se muestra el sistema de coordenadas

9. Operador logarítmico para detección de bordes

El programa MATLAB se utiliza para implementar las siguientes funciones:

I = im read(' xian . BMP ');

Trama de rama (2, 2, 1);

imshow (1);

Título ("imagen original"); >I 1 = RGB 2 gris(I);

Gráfico de rama (2, 2, 2);

imshow(I 1);

Título( "Imagen en escala de grises");

I2=edge(I1,' log');

Gráfico de rama (2, 2, 3);

imshow( I2) ;

Title("Resultados de la segmentación del operador logarítmico");

Detección de bordes de 10. Operador astuto

El programa MATLAB se utiliza para implementar las siguientes funciones:

I = im read(' xian . BMP ');

Gráfico de rama (2, 2 , 1);

imshow(一);

Título ("imagen original")

I 1 = RGB 2 gris(I);

Gráfico de rama (2, 2, 2);

imshow(I 1);

Título ("Imagen en escala de grises");

I2=edge(I1,' astuto');

Gráfico de rama (2, 2, 3);

imshow(I2);

Título (" resultado de segmentación de operador astuto");

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

Centro de control de croma

Borrar todo

I = estoy leído(' xian . BMP ');

Mi conjetura

imshow(1);

Título ("imagen original");

I 1 = RGB 2 gris(I); Convierte una imagen en color a una imagen en escala de grises.

umbral = umbral gris(I 1); Calcula el umbral requerido para convertir la imagen en escala de grises en una imagen binaria

BW=im2bw(I1, umbral); Convertir a imagen binaria

Supongo

im show(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 línea inicial

Conectividad = 8;

num _ puntos = 180

contorno = bwtraceboundary, [fila, col], ' N ', conectividad, num_points);

Extraer límites

Mi conjetura

imshow(I 1);

Insistir en vivo

p>

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

title("Imagen de seguimiento de borde");

12. Transformación de Hough

I = estoy leído(' xian . BMP ');

Pancake = RGB 2 gris(I);

Subtrama (2, 2, 1);

imshow (pancake);

Título ("imagen en escala de grises"); p>

La cuadrícula está activada;

El eje está activado;

BW=edge(pancake, "Pruitt");

Gráfico de rama (2, 2, 2);

im show (BW);

Título ("Imagen después de la detección de bordes del operador prewitt");

Cuadrícula activada;

Eje activado;

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

Gráfico lateral (); 2, 2, 3);

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

Título ('Diagrama de transformación de Hough');

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

Eje abierto, el eje es normal, manténgalo;

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

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

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

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

Gráfico de rama (2, 2, 4);, imshow (pancake);

Título( 'Detección de imagen de transformación Hough');

eje();

La cuadrícula está activada;

El eje está activado;

Espera;

max _ len = 0;

Para k=1: longitud(líneas)

xy =[ líneas(k).punto 1; líneas(k).punto 2];

plot(xy(:,1),xy(:,2),'ancho de línea',2,'color','verde');<

p>plot(xy(1,1),xy(1,2),'x','linewidth',2,'color','amarillo');

plot(xy(2 , 1), xy(2, 2), 'x', 'ancho de línea', 2, 'color', 'rojo');

len = norm(lines(k).punto 1- líneas (k).punto 2);

if(len gt;max_len)

max _ len = len

xy _ long = xy

Fin

Fin

plot(xy_long(:, 1), xy_long(:, 2), 'ancho de línea', 2, 'color', 'cian' ) ;

13. Método de umbral de histograma

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

I = im read(' xian . BMP '); p>

I 1 = RGB 2 gris(I);

Imagen;

Gráfico de rama (2, 2, 1);

imshow ( I 1);

Título("Imagen en escala de grises")

eje();

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

Eje encendido; mostrar sistema de coordenadas

[m, n] = tamaño(I 1); medir parámetros de tamaño de imagen

GP = cero(1, 256); probabilidades en escala de grises.

Para k=0: 255

GP(k 1)= length(find(I 1 = = k))/(m * n); calcular cada nivel de gris La probabilidad; se almacena en la posición correspondiente en GP.

Fin

Plot (2, 2, 2), barra (0: 255, gp, 'g') dibuja un histograma.

Título("Histograma en escala de grises")

Xlabel('Valor en escala de grises')

Ylabel("Probabilidad de ocurrencia")

I2=im2bw(I, 150/255);

Gráfico de rama (2, 2, 3), im show (I2);

Título ("El umbral es 150 Imagen dividida ")

eje();

La cuadrícula está activada; se muestran las líneas de la cuadrícula

El eje está activado; se muestra el sistema de coordenadas

I3=im2bw(I, 200/255);

Gráfico de rama (2, 2, 4), im show(I3);

Título ("Imagen segmentada con umbral 200 ")

eje();

La cuadrícula está activada; se muestran las líneas de la cuadrícula

El eje está activado; se muestra el sistema de coordenadas

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

Utilice MATLAB para implementar el algoritmo Otsu:

Centro de control de croma

Borrar todo

I = estoy leído (' xian . BMP ');

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

Título ("imagen original")

eje();

La cuadrícula está activada; se muestran las líneas de la cuadrícula

El eje está activado; se muestra el sistema de coordenadas

nivel = umbral gris (I); determinar el umbral de grado gris

BW=im2bw(I, nivel);

Gráfico de rama (1, 2, 2), estoy mostrando (BW);

Título ("Imagen de segmentación de umbral de Otsu")

eje();

La cuadrícula está activada; se muestran las líneas de la cuadrícula

Eje está activado; se muestra el sistema de coordenadas

15 Operación de expansión

I = im read(' xian . BMP '); RGB 2 gris(I);

Gráfico de rama (1, 2, 1);

imshow(I 1);

Título ("Imagen en escala de grises" )

eje() ;

La cuadrícula está activada; se muestran las líneas de la cuadrícula

El eje está activado, se muestra el sistema de coordenadas

p>

se=strel('disk ', 1); generar un círculo Elementos estructurales

I2 = im dila(I 1, se); >

Gráfico de rama (1, 2, 2);

imshow(I2);

Título("Imagen extendida");

eje( );

Cuadrícula activada; muestra líneas de cuadrícula

El eje está activado; se muestra el sistema de coordenadas

16. >Utilice MATLAB para implementar la operación de corrosión

I = im read(' xian . BMP ' );

I 1 = RGB 2 gray(I);

Subtrama (1, 2, 1);

imshow(I 1);

Título("Imagen en escala de grises")

eje();

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

Eje abierto; mostrar sistema de coordenadas

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

I2=imerode(I1, se); grabar con la imagen de los elementos estructurales generados.

Subtrama (1, 2, 2);

imshow (I2);

Título ("Imagen grabada"); eje();

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

Eje activado; mostrar sistema de coordenadas

Operaciones de apertura y cierre.

Utilice MATLAB para implementar operaciones de apertura y cierre

I = im read(' xian . BMP '); 1) , imshow(I);

Título ("imagen original");

eje();

Eje activado; >

I 1 = RGB 2 gris(I);

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

Título ("Imagen en escala de grises") ;

eje();

Eje activado; mostrar sistema de coordenadas

se=strel('disk ', 1); 1 como elementos estructurales.

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

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

Gráfico de rama (2, 2, 3), im show(I2);

Título ("Abrir imagen después del cálculo");

eje();

Sistema de coordenadas de visualización del eje;

Gráfico de rama (2, 2, 4), estoy mostrando (I3);

Título ("imagen después de cerrar la operación"); ;

Eje encendido; muestra el sistema de coordenadas

18. Combinar operaciones de apertura y cierre

I = im read(' xian . BMP '); /p>

Gráfico de rama (3, 2, 1), imshow(I);

Título ("imagen original");

eje();

eje();

p>

Eje activado; mostrar sistema de coordenadas

I 1 = RGB 2 gris(I);

Gráfico de rama (3, 2, 2), imshow(I 1);

Título("Imagen en escala de grises");

eje();

Eje activado; mostrar sistema de coordenadas

se= strel('disk ', 1);

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

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

Gráfico de rama (3, 2, 3), im show (I2);

Título ("Abrir imagen después del cálculo");

eje();

Eje activado; mostrar sistema de coordenadas

Gráfico de rama (3, 2, 4), estoy mostrando (I3);

Título ("Imagen después de cerrar la operación");

eje();

Eje activado; sistema de coordenadas de visualización

se=strel('disco). ', 1);

I4 =imopen(I1, se);

I5=imclose(I4, se

Gráfico de rama (3, 2); , 5), im show (I5); cambiar imagen de operación

Title("Imagen de operación abrir-cerrar"

axis(); activado; mostrar sistema de coordenadas

I6 =imclose(I1, se);

I7=imopen(I6, se);

Gráfico de rama (3, 2) , 6), imshow(I7); cambiar imagen de operación

Title("Imagen de operación Cerrar-Abrir");

eje();

Eje en ; mostrar sistema de coordenadas

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

Utilice MATLAB para implementar las siguientes funciones:

I = im read(' xian . BMP '); cargar imagen

Gráfico de rama (1, 3, 1), imshow(I

Título ("imagen original");

Se abre la cuadrícula; se muestra la cuadrícula Línea

Se activa el eje; se muestra el sistema de coordenadas

I 1 = im2bw(I);

p>

Gráfico de rama (1, 3, 2), imshow(I 1

Título("Imagen binaria");

eje(); >

Cuadrícula activada; muestra líneas de cuadrícula

El eje está activado; muestra el sistema de coordenadas

I2 = bwperim(I 1); p>

Gráfico de rama (1, 3, 3), im show (I2

Título("Imagen binaria del perímetro delimitador");

is();

Abre la cuadrícula;

Abre el eje;

20. siguientes funciones:

I = im read(' xian . BMP ');

Gráfico de rama (2, 2, 1), imshow(I

Título ( "Imagen original");

eje();

Eje en

I 1 = im2bw(I); p>Gráfico de rama(2, 2, 2), imshow(I 1);

Título("Imagen binaria");

eje(); >Eje en ;

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

Gráfico de rama (2, 2, 3), estoy show (I2); >

title('1 esqueleto extraído');

axis();

Eje en;

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

Gráfico de rama (2, 2, 4), im show (I3);

Título ("Extracción de esqueleto de segundo nivel");

eje( );

Eje abierto;

21. Extrae directamente las coordenadas de los cuatro vértices.

I = estoy leído(' xian . BMP ');

I = I(:,:,1);

BW = im2bw(I) ;

Creo que

imshow(~BW)

[x, y]=getpts

Filtro de suavizado

h=fspecial('average ', 9);

I_gray=imfilter(I_gray, h, 'replicate'); filtrado suave