Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Temas Selectos de Mecatrónica y Control Automático INSTITUTO TECNOLOGICO DE LA LAGUNA El objetivo principal de esta práctica fue aprender el procedimiento digital de imágenes la cual nos permite mejorar la calidad o facilitar la búsqueda de información a través de operaciones matemáticas. Cálculo de AOD, Conteo de bits, Derivar, Filtros Media Simple, Planos De Bits, Operaciones Lógicas The main objetive of this practice was to learn the digital imaging procedure which allows us to improve the quality or facilitate the search for information AOD Calculation, Bit Count, Derive, Simple Mean Filters, Bit Planes, Logic Operations Figura 1. La Mona Lisa, Obra de Leonardo Da Vinci (Imagen Original) I. INTRODUCCIÓN En este tema nos guiará a manejar el filtro de imágenes a través de operaciones matemáticas de manera sencilla las cuales nos permitirá modificarlas de manera que queramos al igual esto nos permitirá conocer de manera más profesional el programa Matlab. Las operaciones que utilizaremos será matrices con una frecuencia elevada es decir que estas matrices nos permitirá entender de manera más completa la resolución de las imágenes 1 Adscripción de los autores, comenzando con el nombre completo de la universidad o institución, Dependencia y Departamento (si es el caso), Dirección completa, Colonia, C.P. 00000, Ciudad, Estado, País. 2 En el caso que haya más de una adscripción, incluirla en otro renglón. Si todos los participantes pertenecen a la misma adscripción solo anotarla una vez.* Correo electrónico del autor de contacto. II. DESARROLLO. A. Cálculo De AOD De Una Imagen. Para poder calcular el AOD (Average optical density) necesitaremos iniciar con un acumulador este permite calcular de manera precisa el valor de AOD. 𝐴𝑂𝐷(𝑓) = ∑𝑘𝐻𝑓(𝑘) 𝐾−1 𝑘=0 %OBTENER EL AOD D=int64(0); %Inicializacion Del Acumulador for k=1 :m for l=1 :n c=int64(M(k,l)); %Hacer int64 El Valor Del Pixel D = D + c; end end E=m*n; %Cantidad De Pixeles En La Imagen AOD = (D /E) %Promedio De Densidad óptica Después que obtengamos AOD aplicamos el resultado en forma de valor umbral el cual nos permitirá obtener una imagen en forma binaria con valor preciso del umbral. %Aplicar El AOD a como Valor De Umbral A1=zeros(m,n); for k=1 :m for l=1 :n if M(k,l) < AOD A1(k,l)=0; else A1(k,l)=255; end end end Posteriormente calculamos por medio de un histograma la cual nos mostrara a través de una gráfica el escalado de AOD. La cual consiste en realizar una tabla la cual lleve el conteo de cuantos bits pasa en la imagen o otra manera de decir es que obtenga el numero de bits de la imagen. Tarea 5 Filtrado Espacial de Imágenes Docente: Juan Sifuentes Mijares Carrera: Ingeniería Electrónica Alumno: Luis Rodolfo Guzman Carrillo N°Control:19131535 mailto:amidiq2008@uaem.mx Temas Selectos de Mecatrónica y Control Automático INSTITUTO TECNOLOGICO DE LA LAGUNA Figura 2. Escala De Grises Por Método AOD. %Obtener El Histograma De Una Imagen tabla=zeros(1,256); Apuntador = 0; for k=1 :m for l=1 :n Apuntador = M(k,l)+1; tabla(Apuntador) = tabla(Apuntador)+1; end end plot(tabla) Figura 3. Conteo De Bits A Través De Histograma. B. Filtro De Media Simple Con Mascara De 3x3 Este método nos sirve para poder realizar un suavizado de manera simple ya que este método es intuitivo lo cual permite comprender y fácil de implementar Nos permite eliminar el ruido de las imágenes a través de operaciones matriciales las cual nos darán específicamente el píxel que queremos modificar %PROMEDIAR LOS VALORES DE LOS PIXELES CERCANOS ES DECIR HARA UN SUAVIZADO A1 = zeros(m,n); for k=2 :m - 1 %%Es menos 1 porque se estan quitando los bordes for l=2 :n - 1 C1 = int64(M(k-1,l-1)); C2 = int64(M(k,l-1)); C3 = int64(M(k+1,l-1)); C4 = int64(M(k-1,l)); C5 = int64(M(k,l)); C6 = int64(M(k+1,l)); C7 = int64(M(k-1,l+1)); C8 = int64(M(k,l+1)); C9 = int64(M(k+1,l+1)); S1 = C1 + C2 + C3 + C4 + C5 + C6 + C7 + C8 + C9; S0 = S1/9; A1(k,l) = S0; end end % figure; % imshow(uint8(A1)) Figura 4. Filtro De Media Simple Con Mascara De 3x3 C. Filtro de media ponderada con mascara escala de 3 x 3 de una imagen Al igual que el punto anterior este es similar pero lo que los diferencia es que esta es una operación no lineal ósea la nueva imagen se genera a base de hallar la mediana de los valores del entorno del píxel, repetidos tantas veces como indique una determinada máscara. Este método busca valores de menor a mayor y así aplica la máscara. A2 = zeros(m,n); for k=2 :m - 1 %%Es menos 1 porque se estan quitando los bordes for l=2 :n - 1 C1 = 1 * int64(M(k-1,l-1)); C2 = 2 * int64(M(k,l-1)); C3 = 1 * int64(M(k+1,l-1)); C4 = 2 * int64(M(k-1,l)); C5 = 4 * int64(M(k,l)); C6 = 2 * int64(M(k+1,l)); C7 = 1 * int64(M(k-1,l+1)); C8 = 2 * int64(M(k,l+1)); C9 = 1 * int64(M(k+1,l+1)); S1 = C1 + C2 + C3 + C4 + C5 + C6 + C7 + C8 + C9; Temas Selectos de Mecatrónica y Control Automático INSTITUTO TECNOLOGICO DE LA LAGUNA S0 = S1/16; A2(k,l) = S0; end end % figure; % imshow(uint8(A2)) Figura 5. Filtro De Media Ponderada Con Mascara De 3x3 D. Filtro de media orex con mascara de 3 x 3 Este método es similar al los anteriores pero en este caso buscamos dejar de manera matricial de valores 0 en forma de reglones y en forma de columnas el cual nos mostrara el cambio. A3 = zeros(m,n); for k=2 :m - 1 %%Es menos 1 porque se estan quitando los bordes for l=2 :n - 1 C1 = 1 * int64(M(k-1,l-1)); C2 = 0 * int64(M(k,l-1)); C3 = 1 * int64(M(k+1,l-1)); C4 = 1 * int64(M(k-1,l)); C5 = 0 * int64(M(k,l)); C6 = 1 * int64(M(k+1,l)); C7 = 1 * int64(M(k-1,l+1)); C8 = 0 * int64(M(k,l+1)); C9 = 1 * int64(M(k+1,l+1)); S1 = C1 + C2 + C3 + C4 + C5 + C6 + C7 + C8 + C9; S0 = S1/6; A3(k,l) = S0; end end figure; imshow(uint8(A3)) A4 = zeros(m,n); for k=2 :m - 1 %%Es menos 1 porque se estan quitando los bordes for l=2 :n - 1 C1 = 1 * int64(M(k-1,l-1)); C2 = 1 * int64(M(k,l-1)); C3 = 1 * int64(M(k+1,l-1)); C4 = 0 * int64(M(k-1,l)); C5 = 0 * int64(M(k,l)); C6 = 0 * int64(M(k+1,l)); C7 = 1 * int64(M(k-1,l+1)); C8 = 1 * int64(M(k,l+1)); C9 = 1 * int64(M(k+1,l+1)); S1 = C1 + C2 + C3 + C4 + C5 + C6 + C7 + C8 + C9; S0 = S1/6; A4(k,l) = S0; end end figure; imshow(uint8(A4)) Figuras 6-7. Filtro Por Media OREX Con Máscara De 3x3 E. Derivada digital La derivada digital esta se basa en términos de pixeles, de manera que existen varias formas para definir preferencias, pero estas deben cumplir que. La primera derivada debe ser 0 en zonas de intensidad constante y distintas de 0 en zonas de variaciones. Segunda derivada debe ser 0 en zona de intensidad constante y a lo largo de las rampas con intensidad constantes y estas deben ser distintas de 0 en escalone, comienzo, y fin de rampa. Temas Selectos de Mecatrónica y Control Automático INSTITUTO TECNOLOGICO DE LA LAGUNA clear all; close all; %LEE UNA IMAGEN M = imread('MONA.BMP'); [m,n] = size(M); A1=zeros(m,n); for k=1 :m for l=1 :n-1 x0=int64(M(k,l)); x1=int64(M(k,l+1)); d=x1-x0;A1(k,l) = d; end end figure; imshow(uint8(A1)) A2=zeros(m,n); for k=1 :m for l=1 :n-1 x0=int64(A1(k,l)); x1=int64(A1(k,l+1)); d=x1-x0; A1(k,l) = d; end end figure; imshow(uint8(A2)) A3=zeros(m,n); for l=1 :n for k=1 :m-1 x0=int64(A1(k,l)); x1=int64(A1(k+1,l)); d=x1-x0; A1(k,l) = d; end end figure; imshow(uint8(A3)) A4=zeros(m,n); for l=1 :n for k=1 :m-1 x0=int64(A3(k,l)); x1=int64(A3(k+1,l)); d=x1-x0; A3(k,l) = d; end end figure; imshow(uint8(A4)) A5=zeros(m,n); for k=1 :m for l=1 :n N=int64(A1(k,l)); D=int64(A3(k,l)); r=(N-D)/2; A5(k,l) = r; end end figure; imshow(uint8(A5)) Figuras 8-9. Derivada Digital de una Imagen F. Planos de bits El plano de bits se refiere a las cantidades de capas que contiene una imagen, las cuales están conformadas por bits, estas podemos mostrarlas a través de el siguiente código. clear all; close all; %LEE UNA IMAGEN M = imread('MONA.BMP'); [m,n] = size(M); Temas Selectos de Mecatrónica y Control Automático INSTITUTO TECNOLOGICO DE LA LAGUNA A1=zeros(m,n); A2=zeros(m,n); A3=zeros(m,n); A4=zeros(m,n); A5=zeros(m,n); A6=zeros(m,n); A7=zeros(m,n); A8=zeros(m,n); for k=1 :m for l=1 :n-1 D=fi (M(k,l)); S=bin(D); if S(1)=='0' A1(k,l) = 0; else A1(k,l)=255; end if S(2)=='0' A2(k,l) = 0; else A2(k,l)=255; end if S(3)=='0' A3(k,l) = 0; else A3(k,l)=255; end if S(4)=='0' A4(k,l) = 0; else A4(k,l)=255; end if S(5)=='0' A5(k,l) = 0; else A5(k,l)=255; end if S(6)=='0' A6(k,l) = 0; else A6(k,l)=255; end if S(7)=='0' A7(k,l) = 0; else A7(k,l)=255; end if S(8)=='0' A8(k,l) = 0; else A8(k,l)=255; end end end figure; imshow(uint8(A1)) figure; imshow(uint8(A2)) figure; imshow(uint8(A3)) figure; imshow(uint8(A4)) figure; imshow(uint8(A5)) figure; imshow(uint8(A6)) figure; imshow(uint8(A7)) figure; imshow(uint8(A8)) Figura 10. Planos de bits (la imagen se deteriora de la capa principal a la capa final) G. Operaciones Lógicas de una imagen Podemos realizar Operaciones Lógicas en una imagen a través de su funcionamiento las cual nos permite modificar ciertas áreas de la imagen la cuales tendrán diferente resultado. clear all; close all; %LEE UNA IMAGEN M = imread('MONA.BMP'); [m,n] = size(M); %OBTENER EL AOD D=int64(0); %Inicializacion Del Acumulador for k=1 :m for l=1 :n c=int64(M(k,l)); %Hacer int64 El Valor Del Pixel D = D + c; end end E=m*n; %Cantidad De Pixeles En La Imagen AOD = (D /E) %Promedio De Densidad Optica Temas Selectos de Mecatrónica y Control Automático INSTITUTO TECNOLOGICO DE LA LAGUNA %Aplicar El AOD a como Valor De Umbral A1=zeros(m,n); for k=1 :m for l=1 :n if M(k,l) < AOD A1(k,l)=0; else A1(k,l)=255; end end end figure; imshow(uint8(A1)) %OPERACION AND CON RENGLON DE 3 A2=zeros(m,n); for k=2 :m-1 for l=2 :n-1 C1=-1*int64(A1(k-1,l)); C2=2*int64(A1(k,l)); C3=1*int64(A1(k+1,l)); S1=C1+C2+C3; if S1==0 A2(k,l)= 0; else A2(k,l)= 255; end end end figure; imshow(uint8(A2)) %OPERACION OR CON COLUMNA DE 3 A3=zeros(m,n); for k=2 :m-1 for l=2 :n-1 C1=-int64(A1(k-1,l)); C2=int64(A1(k,l)); C3=int64(A1(k+1,l)); S1=C1+C2+C3; if S1==(255*2) A3(k,l)= 255; else A3(k,l)= 0; end end end figure; imshow(uint8(A3)) Figura 11. Operación lógica AND Figura 12. Operación Lógica OR h. Filtrado Lineal. Es aquel que toma la suma total de todos los puntos matriciales en pixeles para mostrarnos diferente tipos de edición los cuales pueden ser que te muestre de manera binaria la edición en forma horizontal y vertical clear all; close all; %LEE UNA IMAGEN M = imread('MONA.BMP'); [m,n] = size(M); A1=zeros(m,n); for k=2 :m-1 for l=2 :n-1 C1=1*int64(M(k-1,l-1)); C2=2*int64(M(k,l-1)); C3=1*int64(M(k+1,l-1)); C4=0*int64(M(k-1,l)); C5=0*int64(M(k,l)); C6=0*int64(M(k+1,l)); C7=-1*int64(M(k-1,l+1)); C8=-2*int64(M(k-1,l+1)); C9=-1*int64(M(k+1,l+1)); S1=C1+C2+C3+C4+C5+C6+C7+C8+C9; S0=S1; A1(k,l)= S0; end end Temas Selectos de Mecatrónica y Control Automático INSTITUTO TECNOLOGICO DE LA LAGUNA figure; imshow(uint8(A1)) A2=zeros(m,n); for k=2 :m-1 for l=2 :n-1 C1=-1*int64(M(k-1,l-1)); C2=0*int64(M(k,l-1)); C3=1*int64(M(k+1,l-1)); C4=-2*int64(M(k-1,l)); C5=0*int64(M(k,l)); C6=2*int64(M(k+1,l)); C7=-1*int64(M(k-1,l+1)); C8=0*int64(M(k-1,l+1)); C9=1*int64(M(k+1,l+1)); S1=C1+C2+C3+C4+C5+C6+C7+C8+C9; S0=S1; A2(k,l)= S0; end end figure; imshow(uint8(A2)) A3=zeros(m,n); for k=2 :m-1 for l=2 :n-1 C1=-1*int64(A1(k-1,l-1)); C2=0*int64(A1(k,l-1)); C3=1*int64(A1(k+1,l-1)); C4=-2*int64(A1(k-1,l)); C5=0*int64(A1(k,l)); C6=2*int64(A1(k+1,l)); C7=-1*int64(A1(k-1,l+1)); C8=0*int64(A1(k-1,l+1)); C9=1*int64(A1(k+1,l+1)); S1=C1+C2+C3+C4+C5+C6+C7+C8+C9; S0=S1; A3(k,l)= S0; end end figure; imshow(uint8(A3)) Figura 13. Filtrado Lineal. III. CONCLUSION El filtrado espacial trata de mostrarnos diferentes maneras de edición el cual nos completara nivel académico en la formación de manejo del programa de Matlab, este tema nos muestra el manejo matricial de las imágenes las cuales están compuesta por cierto nivel de colores. IV. BIOGRAFÍA GUZMAN CARRILLO LUIS RODOLFO. NACIDO EN TORREÓN, COAHUILA, MÉXICO EL 04/ABRIL/2001 LOS LUGARES ESTUDIANTILES EN DONDE EJERCIÓ ACADÉMICAMENTE FUERON: 1. KINDER: NUEVA CREACIÓN, UBICADO EN RICON LA MERCED, SALIÓ CERTIFICADO EL AÑO 2007 2. PRIMARIA: IGNACIO ZARAGOZA SUR, UBICADO EN LOS ARENALES, SALIÓ CON CERTIFICADO EL AÑO 2013. 3. SECUNDARIA: CARLOS MANUEL SADA N° 14, UBICADO EN EX. HACIENDA LA PERLA, SALIÓ CON CERTIFICADO EL AÑO 2016. 4. PREPARATORIA: CONALEP. UBICADO EN COL. LA MERCED II, SALIÓ CON CERTIFICA Y TITULO EN TÉCNICO EN MANTENIMIENTO EN SISTEMAS ELECTRÓNICOS, EL AÑO 2019. EL ACTUALMENTE TRABAJA EN EL ÁREA DE TINTORERÍA EN EL NEGOCIO MAJESTIC EL CUAL ESTÁ UBICADO ENTRE JUÁREZ Y TREVIÑO LLEVA LABORANDO 4 MESES, PERO ESE NO FUE SU ÚNICO TRABAJO ANTERIORMENTE LABURO EN: 1. COCINERO, KING RIBS 2. AYUDANTE GENERAL, CARPINTERÍA 3. MESERO, PIRATA BURGER 4. TAQUERO, BEERBOOK 5. MESERO/BARTEDER, BEERBOOK EL TEC. GUZMAN, ACTUALMENTE PERTENECE AL EQUIPO DE ROBÓTICA DESERT EAGLES 5705, PERO AL CURSAR LA SECUNDARIA PARTICIPO EN LA CONVENCIÓN DE CRISTALES Y MATERIALES EN PEÑOLES.
Compartir