Long Exposures #745
Replies: 3 comments 4 replies
-
Hi and sorry for the delay. There might be a few different things happening. Firstly, when you set the exposure time it can take a while for it to take effect. If you can, maybe try setting things up before starting the camera ( |
Beta Was this translation helpful? Give feedback.
-
Thanks for the answer. With buffer_count=2 I'm still seeing the odd thing where a 60sec exposure will be returned in less than 60 secs. I suspect it's because the camera is filling the next buffer whilst I'm still processing the previous one, therefore there's some overlap due to processing time. Is this likely the case? |
Beta Was this translation helpful? Give feedback.
-
How are you measuring the exposure time? It's possible that the image is already being exposed when you start to wait for it. I would check the 'ExposureTime' field in the image metadata as this should always be accurate and correct, perhaps something like this:
|
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Hi,
I'm writing a driver for astrophotography and whilst testing it, I notice that the exposure lengths are wrong. I'm running repeated 60 sec exposures. From a cold start, the exposure times from triggering an async capture_array to the job returning (with a wait) is as follows (in seconds):- 1, 61, 119, 119, 119, 119, etc... Not one of them is the 60 seconds that I asked for. In fact, most take almost 2mins! Any thoughts why?
Some code snippets below to show how I'm doing this.
config = picam2.create_still_configuration( {"size": (640, 480)}, raw={'format': 'SRGGB12','size': (2028,1520)})
picam2.configure(config)
picam2.start()
...
with picam2.controls as controls:
controls.ExposureTime = int(duration * 1e6)
controls.AeEnable = False
controls.NoiseReductionMode = libcamera.controls.draft.NoiseReductionModeEnum.Off
controls.AwbEnable = False
controls.AnalogueGain = gainvalue
controls.ColourGains = (2.0, 2.0)
job = picam2.capture_array("raw", signal_function=oncapturefinished)
...
array = picam2.wait(job).view(np.uint16) * (2 ** (16 - 12))
EDIT:-
If I specify "queue=False, buffer_count=2" in the configuraton, I get different results. This time, for a 60 sec exposure, it would take 1 sec for the first exposure, then each subsequent one would take 58 seconds. Likewise, for a 2min exposure, the first takes 1 second and the rest take 1:59secs. What's happening here?
Beta Was this translation helpful? Give feedback.
All reactions