Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INFORME ACADEMICO
“Titulo”
Autor(es):
Asesor:
LIMA – PERÚ
2021
ÍNDICE
I. Introducción 3
II. Marco teórico 4
III. Desarrollo 5
3.1 Canny algoritmo pasos 5
3.2 Pasos detallados del algoritmo 5
3.2.1 Procedimiento en escala de grises 5
3.2.2 Filtro suave gaussiano 5
3.2.3 Supresión no máxima 5
3.2.4 Detección de umbral doble 5
3.2.5 Suprimir puntos aislados de umbral bajo 5
IV. Algoritmo Cany 6
V. Conclusiones 7
VI. Referencias Bibliográficas 8
I. INTRODUCCION
Lo que vendría hacer una imagen digital es una imagen que fue
discretizada en sus coordenadas especiales, como también su
intensidad luminosa, cada elemento como las pequeñas unidades que
compone un gráfico digital de una imagen recibe el nombre píxel (2010.p.68)
De esta manera concluyó La imagen digital es, por su naturaleza, económica, ya que es
de fácil duplicación, y puede ser de acceso simultáneo. No gasta materiales en su
producción y no hay que crear nuevos recursos de hardware que los que generalmente
existen
Según Martin mención que un borde puede definirse como un cambio significativo en
el valor de la intensidad de los pixeles en una región de la imagen (2017, p. 48).
En la actualidad utilizamos técnicas para la mejorar las fotos antiguas, además es una
tecnología que extrae la información estructural de diferentes objetos, y estos
algoritmos de detección de bordes deben de cumplir con los estándares. Por ello Ehu
nos menciona.
Según Ehu nos dice el operador de Canny basa su operación en los siguientes
criterios:
1. Buena detección: El detector debe distinguir con suficiente Margen entre
bordes verdaderos y bordes falsos. Esto implica, por un lado, marcar con alta
probabilidad puntos tipo bordes reales. Por otro lado, el detector debe marcar,
con baja probabilidad, puntos que no son bordes. Este criterio corresponde a
maximizar la relación señal/ruido.
2. Buena localización: Los puntos marcados como bordes deben corresponder
en lo posible con los centros de los bordes verdaderos.
3. Respuesta única: En lo posible, el detector debe responder con un solo
borde. Esto, de alguna manera, queda implícito en el primer criterio, ya que
cuando existen dos respuestas para un mismo borde una de ellas se debe
considerar como falsa. Sin embargo, la forma matemática del primer criterio no
toma en cuenta el requisito de múltiples respuestas y por tanto esto se debe
especificar de manera explícita (2017, p.50).
Según lo mencionado por Ehu se deduce que el algoritmo del detector de borde de
Canny regularmente toma una imagen en escala de grises como ingreso y causa una
imagen que muestra el lugar de las discontinuidades de intensidad de los bordes,
además este algoritmo tiene el propósito de comprimir elocuentemente el tamaño de
los datos de la imagen mientras se conservan los atributos de la imagen original. El
algoritmo detector de bordes nos muestra lo que pasa al interior de estas imágenes en
desde un punto de vista de alto nivel.
III. DESARROLLO
θ=arctanGyGx θ = arctan G y G x
La intensidad del gradiente θ siempre sera la G y que la gradiente indicara la
dirección del gradiante Arctan conocida como la función del arco tangente
Los operadores Sobel en direcciones x e y son las siguientes:
Los pixeles que viene entre los 8 pixeles con los conectados del borde se conservan como el borde
verdadero, el real; caso contrario seria suprima pixel
def Digitize_angle(Angle):
quantized = np.zeros((Angle.shape[0], Angle.shape[1]))
for i in range(Angle.shape[0]):
for j in range(Angle.shape[1]):
if 0 <= Angle[i, j] <= 22.5 or 157.5 <= Angle[i, j]
<= 202.5 or 337.5 < Angle[i, j] < 360:
quantized[i, j] = 0
elif 22.5 <= Angle[i, j] <= 67.5 or 202.5 <= Angle[i,
j] <= 247.5:
quantized[i, j] = 1
elif 67.5 <= Angle[i, j] <= 122.5 or 247.5 <=
Angle[i, j] <= 292.5:
quantized[i, j] = 2
elif 112.5 <= Angle[i, j] <= 157.5 or 292.5 <=
Angle[i, j] <= 337.5:
quantized[i, j] = 3
return quantized
else:
color[i, j, 0] = 0
color[i, j, 1] = 0
return color
def _hysteresis(g_thresholded):
g_strong = np.zeros(g_thresholded.shape)
for i in range(0, g_thresholded.shape[0]): # loop over
pixels
for j in range(0, g_thresholded.shape[1]):
val = g_thresholded[i,j]
if val == 128: # check if weak edge connected
to strong
if g_thresholded[i-1,j] == 255 or
g_thresholded[i+1,j] == 255 or g_thresholded[i-1,j-1] == 255 or
g_thresholded[i+1,j-1] == 255 or g_thresholded[i-1,j+1] == 255 or
g_thresholded[i+1,j+1] == 255 or g_thresholded[i,j-1] == 255 or
g_thresholded[i,j+1] == 255:
g_strong[i,j] = 255 # replace weak edge
as strong
elif val == 255:
g_strong[i,j] = 255 # strong edge remains
as strong edge
return g_strong
sigma = 0.5
T = 0.3
x, y = MaskGeneration(T, sigma)
gauss = Gaussian(x, y, sigma)
gx = -Create_Gx(x, y)
gy = -Create_Gy(x, y)
image = cv2.imread('barras1.png')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
plt.figure(figsize = (8,8))
plt.imshow(gray, cmap='gray')
plt.title('ESCALA GRISES')
fx = ApplyMask(smooth_img, gx)
plt.figure(figsize = (8,8))
plt.imshow(fx, cmap='gray')
plt.title('DEGRADADO X')
fy = ApplyMask(smooth_img, gy)
plt.figure(figsize = (8,8))
plt.imshow(fy, cmap='gray')
plt.title('DEGRADADO Y')
quantized = Digitize_angle(Angle)
nms = Non_Max_Supp(quantized, Angle, mag)
plt.figure(figsize = (10,10))
plt.imshow(nms, cmap='gray')
plt.title('SUPRESION NO MAXIMA')
print('max', nms.max())
print('min', nms.min())
threshold = _double_thresholding(nms,10,20)
cv2.imwrite('double_thresholded.jpg', threshold )
plt.figure(figsize = (10,10))
plt.imshow(threshold, cmap='gray')
plt.title('DOBLE UMBRAL')
hys = _hysteresis(threshold)
cv2.imwrite('Result.jpg', hys)
plt.figure(figsize = (10,10))
plt.imshow(hys, cmap='gray')
plt.title('HYSTERESIS')
plt.show()
VI. CONCLUSIONES
Marco una diferencia entre el hoy y antes ya que antes no se podía modificar las
imágenes a ese nivel
En este trabajo se ha presentado en el que se detalla todos los pasos necesarios para
conocer los bordes de una imagen mediante el algoritmo de Canny,
Como se observa en los ejemplos los resultados en la aplicación son los previstos, y
de esta manera se observa los necesario e indispensable de este algoritmo
Este informe se detalla los pasos necesarios para conocer los bordes de una imagen
mediante el algoritmo de Canny, este algoritmo de detección de bordes de imágenes
basado en el operador Canny ha sido presentado al usuario mediante una interfaz
gráfica muy intuitiva y de sencillo manejo.
CHACON, Mario. Percepción visual aplicada a la robótica. Ciudad de México: 2016. 364 pp.
ISBN: 978-607-622-192-1
https://books.google.com.pe/books?id=pCHaDAAAQBAJ&pg=SA1-
PA73&dq=Algoritmo+Canny&hl=es&sa=X&ved=2ahUKEwjArKLTranwAhU0FFkFHYGmA
cQQ6AEwBXoECAIQAg#v=onepage&q=Algoritmo%20Canny&f=false