lunedì 4 maggio 2015

Esercizio 4 - Color detection

Questo esercizio ha lo scopo di individuare un colore prestabilito in una immagine e calcolarne il "centro", o più correttamente il "centroide". Per compiere questa operazione si utilizza lo "spazio di colore HSV".
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import cv2
import numpy as np

# legge una immagine da un file
img = cv2.imread("tratto.jpg",1) 

# Convert BGR to HSV
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

# definisce un intervallo di colore nello spazio HSV
verde_min = np.array([33,96,94],np.uint8)   #############################
verde_max = np.array([87,255,255],np.uint8) #############################

# soglia che prende solo l'area compresa tra i due livelli di colore
mask = cv2.inRange(hsv, verde_min, verde_max)

# cerca il centro (centroide) dell'area evidenziata
M = cv2.moments(mask, 0) 
cx,cy = int(M['m10']/M['m00']), int(M['m01']/M['m00'])

# disegna un cerchio:
#  (immagine, centro, raggio, colore(BGR), spessore)
cv2.circle(img,(cx,cy),20,(0,0,255),2) 

## Visualizza le immagini nelle varie finestre
cv2.imshow('Immagine caricata dal file...',img) 
cv2.imshow('mask',mask)

# attende che venga premuto un tasto
k = cv2.waitKey(0) 
# ...chiude tutte le finestre
cv2.destroyAllWindows() 

Nessun commento:

Posta un commento