linear_polar_off_center.py

# Эта работа лицензирована по лицензии MIT.
# Copyright (c) 2013-2026 OpenMV LLC. All rights reserved.
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# Пример линейного полярного отображения со смещённым центром
#
# Этот пример демонстрирует перепроецирование изображения с помощью линейного полярного
# преобразования с центром в точке, заданной пользователем, а не в
# центре изображения. Это полезно, когда оптическая ось объектива не
# совпадает с центром датчика (например, объектив типа "рыбий глаз", установленный со
# смещённым адаптером), поэтому полярное преобразование можно перецентрировать относительно
# истинного оптического центра.
#
# Передайте именованные аргументы `x` и `y`, чтобы задать центр полярного преобразования. Оба
# по умолчанию принимают значение центра изображения, если не заданы.

import csi
import time

csi0 = csi.CSI()
csi0.reset()  # Инициализация датчика камеры.
csi0.pixformat(csi.RGB565)  # или csi.GRAYSCALE
csi0.framesize(csi.QQVGA)  # или csi.QVGA (или другие)
csi0.snapshot(time=2000)  # Дайте новым настройкам вступить в силу.

# Сместите центр полярного преобразования на 20 пикселей вправо и на 10 пикселей вниз
# от центра датчика. Подберите эти значения под ваш объектив.
CENTER_X_OFFSET = 20
CENTER_Y_OFFSET = 10

clock = time.clock()  # Отслеживает FPS.

while True:
    clock.tick()  # Отслеживание количества миллисекунд, прошедших между snapshots().
    img = csi0.snapshot()
    cx = (img.width() // 2) + CENTER_X_OFFSET
    cy = (img.height() // 2) + CENTER_Y_OFFSET
    img.linpolar(reverse=False, x=cx, y=cy)

    print(clock.fps())  # Примечание: ваша камера OpenMV Cam работает примерно вдвое медленнее, пока
    # подключена к компьютеру. После отключения частота кадров должна увеличиться.

results matching ""

    No results matching ""