Sei sulla pagina 1di 2

Tarea 3 procesamiento de imagenes y vision artificial

Detección de objeto circular mediante métodos de filtrado, morfología y color en el espacio


HSV

1. Mediante las librerías de OpenCV se abre la cámara del computador


cap = cv2.VideoCapture(0)

2. Se usó un filtro bilateral para eliminar ruido de la señal


#Filtro bilateral
blur = cv2.bilateralFilter(frame,7,100,100)
3. Se cambia de el espacio de BGR a HSV
#Cambio de espacio de color
hsv = cv2.cvtColor(blur, cv2.COLOR_BGR2HSV)
4. se aplica la máscara a la imagen que permite la entrada de los colores que se
definieron, a esto se le llama proceso de umbralización
azul_bajos = np.array([80,100,120], dtype=np.uint8)
azul_altos = np.array([130, 255, 255], dtype=np.uint8)
mask = cv2.inRange(hsv, azul_bajos, azul_altos)
5. Se utilizan la operaciones morfológicas de apertura y cierre para eliminar el ruido de la
imagen y se define el kernel.
kernel = np.ones((11,11),np.uint8)
mask = cv2.morphologyEx(mask, cv2.MORPH_CLOSE, kernel)
mask = cv2.morphologyEx(mask, cv2.MORPH_OPEN , kernel)
cv2.imshow('mascara',mask)

6. Se extraen los contornos de la máscara para asi calcular el area y dibujar a su vez el
rectángulo contenedor
contours = cv2.findContours(mask, cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_NONE)

7. A continuación se muestra el código para dibujar el rectángulo


if len(contours[0]) > 0 :
x,y,w,h = cv2.boundingRect(contours[0][0])
cv2.rectangle(frame,(x,y),(x+w,y+h),(255,255,255))

# Calcula area y perímetro a partir de los contornos


areac = cv2.contourArea(contours[0][0])
print('Area por contorno')
print(areac)
print('Area por momento')
print(area)
perimeter = cv2.arcLength(contours[0][0],True)
print('Perímetro')
print(perimeter)

if areac > 493 and areac < 40193 :


cv2.imshow('rect',frame)
else:
cv2.imshow('rect',ff)
else :

cv2.imshow('rect',ff)

Conclusiones
- Las condiciones de iluminación afectan el desempeño del algoritmo
- La distancia del objeto a la cámara afecta la umbralizacion, ya que la muestra del
color disminuye en cuanto a cantidad de pixeles la cual la hace difícil de detectar
- Cuando tenemos un objeto con ruido (logo dentro de la imagen) se utiliza las
operaciones morfológicas para hacer un objeto mas compacto.

Potrebbero piacerti anche