median_filter.py
# Esta obra está licenciada bajo la licencia MIT.
# Copyright (c) 2013-2023 OpenMV LLC. Todos los derechos reservados.
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# Ejemplo de filtro de mediana
#
# Este ejemplo muestra el filtrado por mediana. El filtrado por mediana reemplaza cada píxel
# con el valor de la mediana de su vecindario NxN. El filtrado por mediana es útil para
# eliminar el ruido de la imagen conservando los bordes.
import csi
import time
csi0 = csi.CSI()
csi0.reset() # Inicializar el sensor de la cámara.
csi0.pixformat(csi.RGB565) # o csi.GRAYSCALE
csi0.framesize(csi.QQVGA) # o csi.QVGA (u otros)
csi0.snapshot(time=2000) # Deje que la nueva configuración surta efecto.
clock = time.clock() # Registra los FPS.
while True:
clock.tick() # Registre los milisegundos transcurridos entre snapshots().
img = csi0.snapshot() # Tomar una foto y devolver la imagen.
# El primer argumento del filtro de mediana es el tamaño del kernel, que puede ser
# 0, 1 o 2 para un kernel de 1x1, 3x3 o 5x5 respectivamente. El segundo
# argumento "percentile" es el número de percentil a elegir dentro del vecindario
# NxN. 0.5 es la mediana, 0.25 es el cuartil inferior y 0.75
# sería el cuartil superior.
img.median(1, percentile=0.5)
print(clock.fps()) # Nota: Su OpenMV Cam funciona aproximadamente a la mitad de velocidad mientras
# está conectada a su computadora. Los FPS deberían aumentar una vez desconectada.