midpoint_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 punto medio
#
# Este ejemplo muestra el filtrado de punto medio. El filtrado de punto medio sustituye cada
# píxel por el promedio de los valores mínimo y máximo de píxel en una vecindad de NxN.
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 es el tamaño del kernel. N corresponde a un tamaño de kernel
# ((N*2)+1)^2. Por ejemplo, 1 == kernel de 3x3, 2 == kernel de 5x5, etc. Nota: no
# no debería necesitar nunca un valor mayor que 2. El argumento "bias"
# le permite elegir entre la mezcla de mínimo y máximo. 0.5 == filtro de punto medio,
# 0.0 == filtro de mínimo, y 1.0 == filtro de máximo. Tenga en cuenta que el filtro de mínimo
# oscurece las imágenes, mientras que el filtro de máximo las aclara.
img.midpoint(1, bias=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.