В Raspberry Pi определенный camera.shutter не совпадает с запрошенным camera.exposure_speed.
В документе API Picamera-Документ API PiCamera говорится:
Exposure_speed- Получает текущую выдержку камеры. При запросе это свойство возвращает текущую используемую выдержку. камерой. Если вы установили shutter_speed на ненулевое значение, тогда Exposition_speed и shutter_speed должны быть равны. Однако если shutter_speed установлен на 0 (авто), тогда вы можете прочитать фактический затвор скорость, используемая из этого атрибута. Значение возвращается как целое число. представляющий количество микросекунд. Это свойство только для чтения.
Несмотря на описанное выше, после того, как я определил shutter_sepeed равным 10 секундам, extension_speed вернет 0 - два переменных не равны. как видно в моем коде ниже:
from picamera import PiCamera
with PiCamera(resolution=(1024,768), framerate=Fraction(1,6), sensor_mode=3) as camera:
exp_sec = int('10')
camera.shutter_speed = exp_sec * 10**6 # micros
sleep(30)
print('camera_shutter_speed='+str(camera.shutter_speed))
print('camera_exposure_speed:'+str(camera.exposure_speed))
camera.iso = 1600 # 100-1600
camera.exposure_mode = 'off' # lock all setting parameters
fn_png = str(time.strftime("%Y-%m-%d-%H-%M-%S"))+'.png
camera.capture(fn_png, format='png')
В ответ:
>>>
===== RESTART: /home/pi/Documents/test_scripts/cap_one_image.py =====
made new direc
it is time to take a shot
0
camera_shutter_speed=9999959
camera_exposure_speed= 0
Последние два не равны, что не имеет никакого смысла. Мысли?






IIRC, атрибут camera.exposure_speed не обновляется до тех пор, пока после вы не сделали изображение с запрошенной настройкой shutter_speed.
Если вы попробуете распечатать настройки после захвата, это сработает?
exp_sec=int('10')
camera.shutter_speed=exp_sec*10**6 # micros
sleep(30)
print('camera_shutter_speed='+str(camera.shutter_speed))
print('camera_exposure_speed:'+str(camera.exposure_speed))
camera.iso=1600 #100-1600
camera.exposure_mode='off' # lock all setting parameters
fn_png=str(time.strftime("%Y-%m-%d-%H-%M-%S"))+'.png'
camera.capture(fn_png, format='png')
print('camera_shutter_speed='+str(camera.shutter_speed))
print('camera_exposure_speed:'+str(camera.exposure_speed))
почему
exp_sec=int(‘10’)используется вместоexp_sec = 10?