Você está na página 1de 6

Carlos Alejandro Sanchez Aceves

16110297

Visión artificial

Contador de monedas

7F
Introducción:
Filtrado es la operación de eliminar o resaltar componentes de la representación transformada
de la imagen. Esto se consigue multiplicando la transformada por un filtro H(u,v). La
operación dual es la convolución con una respuesta a impulso h(x,y).
Se eliminan o atenúan las altas frecuencias y se preservan las bajas frecuencias.
El efecto es la difusión en la imagen, blurring o desenfoque de la imagen.
Se utiliza para eliminar ruido impulsivo que se identifica con las altas frecuencias
Se utiliza también como preproceso para el muestreo (para garantizar una banda limitada) o
para otros procesos como la extracción de bordes.

Objetivo:
Realizar un algoritmo con el cual se pueda contar la monedas en tiempo real.

Marco teórico:
Filtros espaciales lineales:
A diferencia de las operaciones de píxel los filtros son operaciones donde el nuevo pixel
calculado depende no únicamente del pixel original, sino que también son considerados sus
pixeles vecinos. El tamaño de la región del filtro es un parámetro importante ya que
determina cuantos y cuales vecinos del pixel de la imagen original serán considerados para
el cálculo del nuevo pixel, los tamaños más comunes son matrices de 3×3 o 5×5; La forma
de la región del filtro puede ser cualquiera, sin embargo, la forma cuadrada es la más utilizada
por que además de la facilidad de cálculo permite considerar pixeles vecinos en todas
direcciones, lo cual es una propiedad deseable de un filtro.

Canny:
El propósito de Canny era descubrir el algoritmo óptimo de detección de bordes. Para que un
detector de bordes pueda ser considerado óptimo debe cumplir los siguientes puntos:
Buena detección- el algoritmo debe marcar el mayor número real en los bordes de la imagen
como sea posible.
Buena localización- los bordes de marca deben estar lo más cerca posible del borde de la
imagen real.
Respuesta mínima - El borde de una imagen sólo debe ser marcado una vez, y siempre que
sea posible, el ruido de la imagen no debe crear falsos bordes.
Para satisfacer estos requisitos Canny utiliza el cálculo de variaciones - una técnica que
encuentra la función que optimiza un funcional indicado.
Desarrollo y Resultados:
Money = 0

import cv2

import numpy as np for area in areas:

if area <= 19000 and


area >= 18000:
Im = cv2.VideoCapture(0)
Money += 10
while(True):
elif area <= 16000 and
red,frame = Im.read() area >= 15000:
gris = cv2.cvtColor(frame, Money += 5
cv2.COLOR_BGR2GRAY)
elif area <= 13000 and
gauss = cv2.GaussianBlur(gris, area >= 12000:
(5,5), 0)
Money += 2

elif area <= 11000 and


canny = cv2.Canny(gauss, 50, area >= 10000:
200)
Money += 1

(contornos,_) =
cv2.findContours(canny.copy(), print("Son {} pesos"
cv2.RETR_EXTERNAL, .format(Money))
cv2.CHAIN_APPROX_SIMPLE)

cv2.drawContours(frame,contorn
areas = [] os,-1,(0,0,255), 2)

for c in contornos:

cv2.imshow("Canny",frame)
areas.append(cv2.contourArea(c
)) if cv2.waitKey(1) == 13:

break

#print(areas) Im.release()

cv2.destroyAllWindows()
Conclusión:
Concluimos que el detector de bordes de Canny se puede utilizar en diversas
aplicaciones, como por ejemplo en el contador de monedas ya que al detectar
los bordes de estas podemos calcular fácilmente su área y así poder saber que
tipo de moneda esta frente a la cámara y contarlo.

Você também pode gostar