I want to have a fixed exposure value to get images with the same brightness whenever I turn on the cameras. In order to achieve this I set device.node_maps["Device"].AcquisitionControl.nodes[18].value = "Off"
and device.node_maps["Device"].AcquisitionControl.nodes[19].value = 300000.0
. But the images from different cameras of the same type and settings still have a different brightness. The brightness adjusts automatically when I open the cameras in the Genicam-Browser. But I always want the same brightness for all cameras whenever I use them with cvbpy without needing to open the Genicam-Browser to adjust the brightness.
Hi @Oguz, there might be two solutions for that:
- You could store a configuration per camera from within the GCBrowser. This will create a loadable json like file, containing the nodemap manipulations you want to be set at loadtime. Open the device with the Genicam Browser and set the desired Device Properties in the Controls on the right hand side. Then, click on and hit “Save Device Properties”. In the dialog, you can select the properties you want to be saved and restorable.
Like this you can reduce code and have a structured settings set for each camera, which by the way can be loaded into the GCBrowser again, as well. In software, load the “*.gcs” file as follows.
import cvb
discovered_devices = cvb.DeviceFactory.discover_from_root(cvb.DiscoverFlags.IgnoreVins)
desired_device_info = discovered_devices[0].access_token # TODO: select the one corresponding to the gcs
with cvb.DeviceFactory.open(desired_device_info) as device:
device_nodemap = device.node_maps["Device"]
device_nodemap.load_settings("<path_to_corresponding_settings>.gcs")
- The second approach would only manage the access to the nodes slightly differently. See this post on how to access the nodemap correctly.
Depending on your camera, you have to switch off auto exposure and set the exposure time manually.
Regards