lunedì 4 maggio 2015

Esercizio 3 - Soglia

In questo esercizio, introduciamo la funzione:
 cv2.threshold(img , val_rif , val_assegnato , modalità) 
Il suo funzionamento è molto semplice: accetta, tra i parametri di input, l'immagine in scala di grigi da elaborare (img) e genera in uscita una immagine i cui pixel possono assumere solo 2 valori: '0' se sono al di sotto di val_rif oppure val_assegnato per tutti i pixel dell'immagine originale che superano val_rif.

Le modalità di funzionamento possono essere:

  1. cv2.THRESH_BINARY
  2. cv2.THRESH_BINARY_INV
  3. cv2.THRESH_TRUNC
  4. cv2.THRESH_TOZERO
  5. cv2.THRESH_TOZERO_INV
Di cui risparmio la trattazione esaustiva, lasciandovi la possibilità di esplorare e scoprirne il funzionamento...

Ecco il codice di esempio:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import cv2

img = cv2.imread("test1.jpg",1)  # legge una immagine da un file
cv2.imshow('Immagine caricata dal file...',img) # mostra l'immagine in una finestra

gray_image = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # converte in scala di grigi

# soglia binaria : se è sopra passa e viene saturata al livello specificato (255), 
#        ...se il valore è inferiore viene annullato (0)
ret,soglia = cv2.threshold(gray_image,127,255,cv2.THRESH_BINARY) ########################

cv2.imshow('Immagine filtrata con soglia=127',soglia) # mostra l'immagine ottenuta in una finestra

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

Esercizio: 

Provare a variare il valore della soglia, e quello del valore di saturazione..cosa succede?


Per ulteriori approfondimenti rimando alla documentazione ufficiale

Nessun commento:

Posta un commento