0% encontró este documento útil (0 votos)
18 vistas4 páginas

Procesamiento Digital de Imágenes en Python

El documento describe un código en Python para procesar imágenes digitales aplicando diferentes filtros como ajuste de gamma, filtro gaussiano, Canny, Radon e iRadon. La interfaz gráfica permite cargar una imagen, aplicar los filtros seleccionando parámetros y ver el resultado.

Cargado por

ib.liraperez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
18 vistas4 páginas

Procesamiento Digital de Imágenes en Python

El documento describe un código en Python para procesar imágenes digitales aplicando diferentes filtros como ajuste de gamma, filtro gaussiano, Canny, Radon e iRadon. La interfaz gráfica permite cargar una imagen, aplicar los filtros seleccionando parámetros y ver el resultado.

Cargado por

ib.liraperez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

ACTIVIDAD

PROCESAMIENTO DIGITAL DE IMAGENES

IMAGENOLOGIA

Estudiante:
 Sergio Lira Pérez

Docente: Hernández Tolentino Uriel

Fecha de entrega: 22/03/202


1. Código realizado en Dev C.

2. import cv2 41. self.label_umbral.pack()


3. import numpy as np 42. self.scale_umbral = Scale(master, from_=0,
4. import tkinter as tk to=100, orient=tk.HORIZONTAL)
5. from tkinter import filedialog, Button, Label, Scale 43. self.scale_umbral.pack()
6. from skimage.transform import radon, iradon 44.
7. from skimage.filters import sobel 45. self.label_umbral = Label(master, text="Filtro
8. Radon:")
9. radon = 0 46. self.label_umbral.pack()
10. 47. self.scale_umbral = Scale(master, from_=0,
to=255.0, orient=tk.HORIZONTAL)
11. class AplicacionImagen: 48. self.scale_umbral.pack()
12. def __init__(self, master): 49.
13. self.master = master 50. self.label_umbral = Label(master, text="Filtro
14. master.title("Ajuste de Imagen") iRadon:")
15. 51. self.label_umbral.pack()
16. self.imagen_original = None 52. self.scale_umbral = Scale(master, from_=0,
17. self.imagen_procesada = None to=180, orient=tk.HORIZONTAL)
18. 53. self.scale_umbral.pack()
19. self.label_imagen = Label(master, 54.
text="Cargar Imagen:") 55. self.btn_aplicar = Button(master,
20. self.label_imagen.pack() text="Aplicar Ajustes",
21. command=self.aplicar_ajustes)
22. self.btn_cargar = Button(master, text="Cargar 56. self.btn_aplicar.pack(pady=10)
Imagen", command=self.cargar_imagen) 57.
23. self.btn_cargar.pack(pady=10) 58. def cargar_imagen(self):
24. 59. ruta_imagen = filedialog.askopenfilename()
25. self.label_gamma = Label(master, 60. if ruta_imagen:
text="Ajuste de Gamma:") 61. self.imagen_original =
26. self.label_gamma.pack() cv2.imread(ruta_imagen)
27. self.scale_gamma = Scale(master, from_=0.1, 62. self.imagen_procesada =
to=3.0, resolution=0.1, orient=tk.HORIZONTAL) self.imagen_original.copy()
28. self.scale_gamma.pack() 63. self.mostrar_imagen(self.imagen_procesada
29. )
30. self.label_sigma = Label(master, text="Valor 64.
de Sigma (Filtro Gaussiano):") 65. def mostrar_imagen(self, imagen):
31. self.label_sigma.pack() 66. cv2.imshow('Imagen', imagen)
32. self.scale_sigma = Scale(master, from_=0, 67.
to=5.0, resolution=0.1, orient=tk.HORIZONTAL) 68. def aplicar_ajustes(self):
33. self.scale_sigma.pack() 69. if self.imagen_procesada is not None:
34. 70. gamma = self.scale_gamma.get()
35. self.label_umbral = Label(master, 71. sigma = self.scale_sigma.get()
text="Umbral de Canny:") 72. umbral_canny = self.scale_umbral.get()
36. self.label_umbral.pack() 73.
37. self.scale_umbral = Scale(master, from_=0, 74. self.imagen_procesada =
to=255, orient=tk.HORIZONTAL) self.ajustar_gamma(self.imagen_original, gamma)
38. self.scale_umbral.pack() 75. self.imagen_procesada =
39. self.aplicar_filtro_gaussiano(self.imagen_procesada
40. self.label_umbral = Label(master, text="Filtro , sigma)
Pasa Altas:") 76. self.imagen_procesada =
self.aplicar_canny(self.imagen_procesada, 108. root = tk.Tk()
umbral_canny) 109. app = AplicacionImagen(root)
77. self.imagen_procesada= 110. root.mainloop()
self.aplicar_filtropasa_altas(self.imagen_procesada, 111. cv2.destroyAllWindows()
sigma)
78. self.imagen_procesada=
self.aplicar_transformada_Radon(self.imagen_proc
El anterior código, se realizó en el ambiente
esada, sigma)
Phyton – Dev C Compiler.
79. self.imagen_procesada=
self.aplicar_transformada_inversaRadon(self.image
n_procesada, sigma) 1. Interfaz - Código realizado en Dev C.
80.
81. self.mostrar_imagen(self.imagen_procesada
)
82.
83. def ajustar_gamma(self, imagen, gamma):
84. inv_gamma = 1.0 / gamma
85. tabla = np.array([((i / 255.0) ** inv_gamma) *
255 for i in np.arange(0, 256)]).astype("uint8")
86. return cv2.LUT(imagen, tabla)
87.
88. def aplicar_filtro_gaussiano(self, imagen,
sigma):
89. return cv2.GaussianBlur(imagen, (0, 0),
sigmaX=sigma)
90.
91. def aplicar_canny(self, imagen, umbral):
92. return cv2.Canny(imagen, umbral, umbral * 2)
93.
94. def aplicar_filtropasa_altas(self, imagen, sigma):
95. imagen = sobel (imagen)
96. return cv2.LUT(imagen)
97.
98. def
aplicar_transformada_Radon(self,imagen,sigma):
99. theta =
np.linspace(o.,180.,max(imagen),endopoint =
False)
100. sinogram = radon (imagen, theta=theta,
circle=True)
101. return cv2.randn (imagen, (0,0))
102.
103. def
aplicar_transformada_inversaRadon(self,imagen,si
gma):
104. reconstructed_image = iradon (sinogram, theta
= theta, circle=True)
105. return cv2(imagen, tabla)
106.

107. if __name__ == "__main__":


Imágenes, filtros deseados.

También podría gustarte