grayscale_bilateral_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 Bilateral em Escala de Cinza
#
# Este exemplo demonstra o uso do filtro bilateral em imagens em escala de cinza.
import csi
import time
csi0 = csi.CSI()
csi0.reset() # Inicializa o sensor da câmera.
csi0.pixformat(csi.GRAYSCALE) # ou csi.RGB565
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.
# color_sigma controla o quão próximos os pixels precisam estar em termos de cor para serem
# borrados juntos. Um valor menor significa que precisam estar mais próximos.
# Um valor maior é menos rigoroso.
# space_sigma controla o quão próximos os pixels precisam estar espacialmente para serem
# borrados juntos. Um valor menor significa que precisam estar mais próximos.
# Um valor maior é menos rigoroso.
# Executa o kernel em cada pixel da imagem.
img.bilateral(3, color_sigma=0.1, space_sigma=1)
# Observe que o filtro bilateral pode introduzir defeitos na imagem se você definir
# color_sigma/space_sigma de forma muito agressiva. Aumente os valores de sigma até
# os defeitos desaparecerem, caso os note.
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.