How to get histogram of multiple cameras?

Hi,
I am using argus to capture images. I create a capture session with 3 camera device and submit the request and I found that the histogram i get from each frame consumer is the same. I want to implement the auto exposure based on histograms of three images, how can get the histogram of them?
Thanks.

Did you try argus_histogram -d for different sensor to clarify the problem?

Hi Shane,

Thanks for your reply. I did try argus_histogram for every camera and we confirmed that each histogram is ok. They run at the same time in three different terminals.
But In my case, I use one capture session with 3 camera devices and wait for the captur_compelet_event. I try to get histogram as the sample argus_histogram did. And all I got was only one capture_complete_event and one histogram of camera[0]. Should I calculate the histogram manully like the sample syncSensor?

Thank you!

Sorry to tell we didn’t verify this use case.
Could you try calculate manually, otherwise I would suggest to implement by multiple session.

Thanks

Alright I’ve managed to calculate the histogram respectively by using CudaEGLStreamFrame Consumer. Thank you.

Hi Shane,

As I mentioned above, I’ve got the cuda hitogram and adjusted the exposure succesfully by CudaEGLStreamFrame Consumer. But when I create another stream with EGL Frame consumer(save jpeg file), I got errors like:

[ STATUS] [1668145126.150498390] Start SYNC_CMD capture command
Session::updatePerfHints()
updatePerfHints(): guid=0ll, CaptureIntent=1
updatePerfHints(): NvCameraCoreUseCase_Preview
NvPHSSendThroughputHints: sensorId=0, m_usecase=4, m_type=1, m_value=30, m_timeout_ms=1000

NvPHSSendThroughputHints: sensorId=0, m_usecase=4, m_type=15, m_value=0, m_timeout_ms=1000

updatePerfHints(): guid=1ll, CaptureIntent=1
updatePerfHints(): NvCameraCoreUseCase_Preview
NvPHSSendThroughputHints: sensorId=1, m_usecase=4, m_type=1, m_value=30, m_timeout_ms=1000

NvPHSSendThroughputHints: sensorId=1, m_usecase=4, m_type=15, m_value=0, m_timeout_ms=1000

updatePerfHints(): guid=2ll, CaptureIntent=1
updatePerfHints(): NvCameraCoreUseCase_Preview
NvPHSSendThroughputHints: sensorId=2, m_usecase=4, m_type=1, m_value=30, m_timeout_ms=1000

NvPHSSendThroughputHints: sensorId=2, m_usecase=4, m_type=15, m_value=0, m_timeout_ms=1000

CoordinatedCam does not support 0 Bayer and 6 YUV output buffers.

SCF: Error NotImplemented: unsupported output buffer config (in src/components/CaptureSetupEngineImpl.cpp, function chooseGenInstFunc(), line 255)
SCF: Error NotImplemented:  (propagating from src/components/CaptureSetupEngineImpl.cpp, function doGetInstructions(), line 2210)
SCF: Error NotImplemented:  (propagating from src/components/CaptureSetupEngine.cpp, function getInstructionList(), line 300)
SCF: Error NotImplemented:  (propagating from src/components/CaptureSetupEngine.cpp, function setupCC(), line 214)
SCF: Error NotImplemented:  (propagating from src/api/Session.cpp, function capture(), line 821)
disposing CC 0 Session 0
(Argus) Error NotImplemented:  (propagating from src/api/ScfCaptureThread.cpp, function run(), line 109)

I wonder what caused this error and how can I solve it? What I need is to capture three cameras at the same time and calculate the average exposure level then save the image.

Thank you.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.