Buscar código 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 '); p>
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); p >
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"); p>
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><
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") 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
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