median_adaptive_threshold_filter.py
# Questo lavoro è concesso in licenza MIT.
# Copyright (c) 2013-2023 OpenMV LLC. Tutti i diritti riservati.
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# Esempio di filtro a soglia adattiva mediano (Median)
#
# Questo esempio mostra il filtraggio mediano con sogliatura adattiva.
# Quando si usa median(threshold=True), il metodo median() applica una sogliatura adattiva all'immagine
# confrontando la mediana dei pixel intorno a un pixel, meno un offset, con quel pixel.
import csi
import time
csi0 = csi.CSI()
csi0.reset() # Inizializza il sensore della fotocamera.
csi0.pixformat(csi.RGB565) # oppure csi.GRAYSCALE
csi0.framesize(csi.QQVGA) # oppure csi.QVGA (o altri)
csi0.snapshot(time=2000) # Lasciare che le nuove impostazioni abbiano effetto.
clock = time.clock() # Traccia gli FPS.
while True:
clock.tick() # Traccia i millisecondi trascorsi tra le chiamate a snapshot().
img = csi0.snapshot() # Scatta una foto e restituisce l'immagine.
# Il primo argomento del filtro mediano è la dimensione del kernel, che può essere
# 0, 1 o 2 rispettivamente per un kernel 1x1, 3x3 o 5x5. Il secondo
# argomento "percentile" è il numero percentile da scegliere nell'intorno
# NxN. 0.5 è la mediana, 0.25 è il quartile inferiore e 0.75
# sarebbe il quartile superiore.
img.median(1, percentile=0.5, threshold=True, offset=5, invert=True)
print(clock.fps()) # Nota: la tua OpenMV Cam funziona a circa metà velocità quando
# è collegata al computer. Il framerate dovrebbe aumentare una volta scollegata.