Вы можете сделать снимок последовательности изображений, которые выглядят одинаково с точки зрения яркости, цвета и контраста (например, это может быть полезно при съемке с интервальной съемкой). Для обеспечения согласованности нескольких снимков необходимо использовать различные атрибуты. В частности, вам необходимо убедиться, что время экспозиции камеры, баланс белого и усиление зафиксированы:
Чтобы зафиксировать время экспозиции, установите для shutter_speedатрибута разумное значение. При желании можно установить isoфиксированное значение. Чтобы зафиксировать усиление экспозиции, разрешите analog_gainи digital_gainустановите разумные значения, затем установите для параметра многоквартирный режим значение 'off'. Для того, чтобы исправить баланс белого, установите awb_modeдля
'off', а затем установить awb_gainsна (красный, синий) кортеж прибыли.
Может быть трудно узнать, какие подходящие значения могут быть для этих атрибутов. Для iso, простое правило заключается в том , что 100 и 200 являются разумные значения для дневного времени, в то время как 400 и 800 лучше для низкой освещенности. Чтобы определить разумное значение, shutter_speedвы можете запросить exposure_speedатрибут. Для увеличения экспозиции обычно достаточно подождать, пока значение не analog_gainстанет больше 1, прежде чем exposure_modeбудет установлено значение 'off'. Наконец, чтобы определить разумные значения, awb_gains
просто запросите свойство, в то время как для awb_modeнего задано нечто иное, чем 'off'. Опять же, это скажет вам усиление баланса белого камеры, как определено алгоритмом автоматического баланса белого.
Следующий скрипт предоставляет краткий пример настройки этих параметров:
from time import sleep
from picamera import PiCamera
camera = PiCamera(resolution=(1280, 720), framerate=30)
# Set ISO to the desired value
camera.iso = 100
# Wait for the automatic gain control to settle
sleep(2)
# Now fix the values
camera.shutter_speed = camera.exposure_speed
camera.exposure_mode = 'off'
g = camera.awb_gains
camera.awb_mode = 'off'
camera.awb_gains = g
# Finally, take several photos with the fixed settings
camera.capture_sequence(['image%02d.jpg' % i for i in range(10)])