rotation_correction.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
#
# Correção de Rotação
#
# Este exemplo demonstra como usar rotation_corr() para manipular a janela
# de cena que sua OpenMV Cam enxerga.
import csi
import time
# Graus por quadro para rotacionar...
X_ROTATION_DEGREE_RATE = 5
Y_ROTATION_DEGREE_RATE = 0.5
Z_ROTATION_DEGREE_RATE = 0
X_OFFSET = 0
Y_OFFSET = 0
ZOOM_AMOUNT = 1 # Valores mais baixos afastam o zoom - valores mais altos aproximam o zoom.
FOV_WINDOW = 60 # Entre 0 e 180. Representa o campo de visão da cena
# ao rotacionar a imagem no espaço 3D. Quanto mais próximo de
# zero, mais retas as linhas ficam à medida que a janela
# se afasta da imagem sendo rotacionada no espaço 3D. Um valor
# grande aproxima a janela da imagem no espaço 3D, o que
# resulta em maior distorção de perspectiva e, às vezes,
# na imagem em 3D interceptando a janela da cena.
csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.RGB565)
csi0.framesize(csi.QVGA)
csi0.snapshot(time=2000)
clock = time.clock()
x_rotation_counter = 0
y_rotation_counter = 0
z_rotation_counter = 0
while True:
clock.tick()
img = csi0.snapshot().rotation_corr(
x_rotation=x_rotation_counter,
y_rotation=y_rotation_counter,
z_rotation=z_rotation_counter,
x_translation=X_OFFSET,
y_translation=Y_OFFSET,
zoom=ZOOM_AMOUNT,
fov=FOV_WINDOW,
)
x_rotation_counter += X_ROTATION_DEGREE_RATE
y_rotation_counter += Y_ROTATION_DEGREE_RATE
z_rotation_counter += Z_ROTATION_DEGREE_RATE
print(clock.fps())