General Information
- Product: C57-6-M, C57-8-L
- Serial Number: 245046, 258860
- Ensenso SDK Version: 4.2.1821
- Operating System: Windows 11
Problem / Question
We are having trouble disabling the MultiExposureFactor in a specific sequence.
In our application, we set the capture parameters using the setJson method when connecting to the camera. However, we have noticed that under a certain procedure, the MultiExposureFactor might not be set correctly.
The procedure is as follows:
- Enable
MultiExposureFactor(set to 2 or higher) in NxView and capture images. - Close NxView.
- Start our application and set
MultiExposureFactorto off (= 1) viasetJson. - Run
Capturein our application, then executeSaveFileCamera. - When we inspect the pattern images inside the FileCamera, the pattern brightness alternates between frames. we suspect that the process to disable
MultiExposureFactorwas not correctly applied.
To reproduce the issue more easily, we have created a small sample program:
{
std::cout << "Open:" << serial << std::endl;
NxLibCommand open(cmdOpen);
open.parameters()[itmCameras] = serial;
open.execute();
std::cout << "Set Parameters" << std::endl;
camera[itmParameters][itmCapture][itmFlexView] = 16;
camera[itmParameters][itmCapture][itmMultiExposureFactor] = 25;
std::cout << "Capture" << std::endl;
NxLibCommand(cmdCapture).execute();
NxLibCommand(cmdRectifyImages).execute();
std::cout << "Close:" << serial << std::endl;
NxLibCommand close(cmdClose);
close.parameters()[itmCameras] = serial;
close.execute();
}
{
std::cout << "Open:" << serial << std::endl;
NxLibCommand open(cmdOpen);
open.parameters()[itmCameras] = serial;
open.execute();
std::cout << "Set Parameters" << std::endl;
const std::string jsonParameter = R"({"Parameters": {"Capture": {"FlexView": 8, "MultiExposureFactor": 1}}})";
camera.setJson(jsonParameter);
std::cout << "Capture" << std::endl;
NxLibCommand(cmdCapture).execute();
NxLibCommand(cmdRectifyImages).execute();
std::cout << "Save FileCamera" << std::endl;
// NOTE:
// FlexView 8 images are saved correctly, but they do not reflect the
// setting where MultiExposureFactor is turned off (= 1).
// The saved images show alternating brightness levels between frames.
// Interestingly, setting the value directly via:
// `camera[itmParameters][itmCapture][itmMultiExposureFactor] = 1;`
// works as expected.
NxLibCommand saveFileCamera(cmdSaveFileCamera);
saveFileCamera.parameters()[itmCameras] = serial;
saveFileCamera.parameters()[itmPath] = "filecamera.zip";
saveFileCamera.parameters()[itmSource] = "Raw";
saveFileCamera.execute();
std::cout << "Close:" << serial << std::endl;
NxLibCommand close(cmdClose);
close.parameters()[itmCameras] = serial;
close.execute();
}
We would appreciate it if you could share your opinion or any advice regarding this issue.