Open edyoshikun opened 1 year ago
Camera we are dealing with often have different running mode.. typical light sheet mode or normal rolling shutter mode.. area mode...and the amount delay for each line...
- Snap()
We definitely need such function that can get a single frame at a time. We can call it snap(), or capture(), or anything else people agree on.
- Get/Set Exposure()
+1
- Get/Set Framerate()
I'm not sure about framerate. Many cameras have a fixed framerate for a given exposure and active chip size. Which cameras have framerate attribute that can be set independently with their driver?
- Get/Set Image size()
+1
- Get/Set Gain()
Again, not sure if this generalizes to most cameras. I would love to see some examples from drivers.
- Get/Set BitDepth()
+1
- Get/Set Binning()
+1
- Get/Set Trigger()
+1. Maybe trigger_type instead of Trigger?
- Get Min/Max Exposure, Gain, Sensor Size
+1
Also, a shutter_mode
property makes sense, as @YangLiujames suggested.
My only other suggestion would be a function like list_available_cameras
since many of the camera drivers expose such functionality to check all powered up available cameras.
Get/Set Framerate()
Yes, most cameras have a fixed framerate, but the FLIR and basler have settings for you to change that. By default and the most used scenario is that the frame rate is always at the highest possible and limited by the exposure time+ readout. I don't really use this , but since the abstract class is to cover most cameras perhaps someone has a use case(?) I am happy if this function does not exist.
Get/Set Trigger()
Trigger type maybe was a very broad term. In my experience setting triggers involves mainly two settings: 1) rising/falling edge and if it can overlap 2) Triggering single/burst frame
+1 shutter_mode
+1 list_available_cameras
One property I didn't add is:
Get/Set Readout_mode()
I know some cameras like the Andor and the Hamamatsu have the choice of different clock-speeds for readout. I am not aware of the FLIR or Basler having something like that, but I haven't looked closely.
The shutter mode and readout time are somewhat interconnected. I am in favor of keep a Get Framerate() but not Set...since most of the sCMOS don't have that option. These two I found pretty useful as well.
could you explain what you refer as output signals more @YangLiujames ?
@AhmetCanSolak
There is a need to define what the abstract classes need for the cameras. This will help develop us write modular code. Taking inspiration from micromanager here I believe the core properties to implement are the following:
Please feel free to add more. @AhmetCanSolak @ieivanov @YangLiujames