midpoint_adaptive_threshold_filter.py
# Ce travail est publié sous licence MIT.
# Copyright (c) 2013-2023 OpenMV LLC. Tous droits réservés.
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# Exemple de filtre de seuillage adaptatif par médiane du point milieu (Midpoint)
#
# Cet exemple montre le filtrage par point milieu avec seuillage adaptatif.
# Lorsque midpoint(threshold=True), la méthode midpoint() applique un seuillage adaptatif à l'image
# en comparant le point milieu des pixels autour d'un pixel, moins un décalage, avec ce pixel.
import csi
import time
csi0 = csi.CSI()
csi0.reset() # Initialiser le capteur de la caméra.
csi0.pixformat(csi.RGB565) # ou csi.GRAYSCALE
csi0.framesize(csi.QQVGA) # ou csi.QVGA (ou autres)
csi0.snapshot(time=2000) # Laisser les nouveaux réglages prendre effet.
clock = time.clock() # Suit le FPS.
while True:
clock.tick() # Suivre les millisecondes écoulées entre les snapshots().
img = csi0.snapshot() # Prendre une photo et renvoyer l'image.
# Le premier argument est la taille du noyau. N correspond à une taille de noyau
# ((N*2)+1)^2. Ex. 1 == noyau 3x3, 2 == noyau 5x5, etc. Remarque : vous
# vous ne devriez jamais avoir besoin d'utiliser une valeur supérieure à 2. L'argument "bias"
# vous permet de choisir entre le mélange min et max. 0.5 == filtre midpoint,
# 0.0 == filtre min, et 1.0 == filtre max. Notez que le filtre min
# assombrit les images tandis que le filtre max les éclaircit.
img.midpoint(1, bias=0.5, threshold=True, offset=5, invert=True)
print(clock.fps()) # Remarque : votre OpenMV Cam fonctionne environ deux fois moins vite lorsqu'elle est
# connectée à votre ordinateur. Le nombre d'images par seconde (FPS) devrait augmenter une fois déconnectée.