midpoint_adaptive_threshold_filter.py
# Este trabalho está licenciado sob a licença MIT.
# Copyright (c) 2013-2023 OpenMV LLC. Todos os direitos reservados.
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# Exemplo de Filtro de Limiar Adaptativo por Ponto Médio
#
# Este exemplo demonstra a filtragem por ponto médio com limiarização adaptativa.
# Quando midpoint(threshold=True), o método midpoint() aplica um limiar adaptativo à imagem
# comparando o ponto médio dos pixels ao redor de um pixel, menos um deslocamento, com esse pixel.
import csi
import time
csi0 = csi.CSI()
csi0.reset() # Inicializa o sensor da câmera.
csi0.pixformat(csi.RGB565) # ou csi.GRAYSCALE
csi0.framesize(csi.QQVGA) # ou csi.QVGA (ou outras)
csi0.snapshot(time=2000) # Aguarda as novas configurações fazerem efeito.
clock = time.clock() # Rastreia FPS.
while True:
clock.tick() # Rastreia os milissegundos decorridos entre snapshots().
img = csi0.snapshot() # Tira uma foto e retorna a imagem.
# O primeiro argumento é o tamanho do kernel. N corresponde a um kernel ((N*2)+1)^2
# de tamanho. Ex.: 1 == kernel 3x3, 2 == kernel 5x5, etc. Nota: Você
# nunca deveria precisar usar um valor maior que 2. O argumento "bias"
# permite selecionar entre a mistura mínima e máxima. 0.5 == filtro de ponto médio,
# 0.0 == filtro mínimo, e 1.0 == filtro máximo. Observe que o filtro mínimo
# torna as imagens mais escuras, enquanto o filtro máximo as torna mais claras.
img.midpoint(1, bias=0.5, threshold=True, offset=5, invert=True)
print(clock.fps()) # Nota: Sua OpenMV Cam roda cerca de metade da velocidade enquanto
# conectada ao seu computador. O FPS deve aumentar após a desconexão.