![]() |
IDS peak comfortC v1.14.1
|
Enumerations | |
| enum | peak_shutter_mode { PEAK_SHUTTER_MODE_UNKNOWN , PEAK_SHUTTER_MODE_ROLLING , PEAK_SHUTTER_MODE_GLOBAL , PEAK_SHUTTER_MODE_GLOBAL_RESET } |
Functions | |
| peak_access_status | peak_ShutterMode_GetAccessStatus (peak_camera_handle hCam) |
| Query the shutter mode access status. | |
| peak_status | peak_ShutterMode_GetList (peak_camera_handle hCam, peak_shutter_mode *shutterModeList, size_t *shutterModeCount) |
| Get the list of currently available shutter modes. | |
| peak_status | peak_ShutterMode_Set (peak_camera_handle hCam, peak_shutter_mode shutterMode) |
| Set the shutter mode. | |
| peak_status | peak_ShutterMode_Get (peak_camera_handle hCam, peak_shutter_mode *shutterMode) |
| Get the shutter mode. | |
During image capture, the most important phases are the exposure and the read out. Before exposure, all relevant pixels are reset, i.e. their charge is emptied. During exposure, the pixels collect photons and convert it to electrical charge. After exposure, this charge is transferred to the sensor's electronics and read out to the subsequent modules of the camera, e.g. the FPGA.
The sequence of these steps differs for global and rolling shutter methods.
A global shutter sensor starts and stops the exposure of all rows simultaneously. In other words, all pixels are exposed for exactly the same duration and at exactly the same point in time. On exposure end, all pixels transfer the collected charge to a storage node to protect it from unwanted further exposure until read out. The read out process is sequential, row by row.
With global shutter sensors, fast-moving objects can be captured without distortions. If you use an artificial light source for illumination, make sure that the frequency of the illumination and the frame rate of the camera match to avoid beating of the image brightness (slow "breathing", flickering).
The pixel design of global shutter sensors is more complex compared to rolling shutter sensors. Thus, global shutter sensors are typically more expensive.
With rolling shutter, the exposure starts for each row separately and sequentially. It stops after integration time, transferring and reading out the pixels row after row.
Although all rows are exposed for exactly the same period of time, the point in time for each row's exposure is slightly different. Each row caught the scene at a slightly different point in time. As a results, moving objects in the scene may appear distorted. This is called the "rolling shutter effect", see following picture below.
Using artificial lighting, rolling shutter sensors can show dark and bright horizontal stripes. These stripes can be stationary or marching vertically across the image. Increasing the exposure time leads to a lower contrast between bright and dark stripes. To completely eliminate this disturbance, rolling shutter cameras usually offer a global flash window, to expose all sensor rows at the same time by firing a flash signal as soon as integration has started in each row.
The pixel design of rolling shutter sensors is generally less complex compared to the pixel design of global shutter sensors. Therefore, rolling shutter sensors are cheaper.
| enum peak_shutter_mode |
| Enumerator | |
|---|---|
| PEAK_SHUTTER_MODE_UNKNOWN | Unknown shutter mode. Use this value for the initialization of variables of type peak_shutter_mode. |
| PEAK_SHUTTER_MODE_ROLLING | Rolling Shutter. The shutter opens and closes sequentially for the pixels. All pixels have the same exposure time but the exposure of the pixel lines starts sequentially. |
| PEAK_SHUTTER_MODE_GLOBAL | Global Shutter. The shutter opens and closes at the same time for all pixels. All pixels have the same exposure time and the exposure of all pixels starts simultaneously. |
| PEAK_SHUTTER_MODE_GLOBAL_RESET | Global Reset. The shutter opens at the same time for all pixels but ends in a sequential manner. Each pixel line has a different exposure time but the exposure of all pixels starts simultaneously.
|
| peak_status peak_ShutterMode_Get | ( | peak_camera_handle | hCam, |
| peak_shutter_mode * | shutterMode ) |
Get the shutter mode.
Reads the current shutter mode.
| [in] | hCam | The camera handle. |
| [out] | shutterMode | The shutter mode. |
shutterMode is an invalid pointer. hCam is an invalid camera handle. | peak_access_status peak_ShutterMode_GetAccessStatus | ( | peak_camera_handle | hCam | ) |
Query the shutter mode access status.
Provides the current access status for the shutter mode.
This function implements the Access Status Query principle.
| [in] | hCam | The camera handle. |
If the function indicates an error by returning PEAK_ACCESS_INVALID, these are the possible errors:
hCam is an invalid camera handle. | peak_status peak_ShutterMode_GetList | ( | peak_camera_handle | hCam, |
| peak_shutter_mode * | shutterModeList, | ||
| size_t * | shutterModeCount ) |
Get the list of currently available shutter modes.
Queries the list of currently available shutter modes.
The list of available shutter modes may depend on the camera configuration and the camera status.
This function implements the Two Staged Data Query principle.
| [in] | hCam | The camera handle. |
| [out] | shutterModeList | Pointer to a user allocated array buffer to receive the shutter mode list. If this parameter is NULL, shutterModeCount will contain the current number of shutter modes. The required size of shutterModeList in bytes is shutterModeCount x sizeof(peak_shutter_mode). |
| [in,out] | shutterModeCount |
|
shutterModeList is not NULL and the value of *shutterModeCount is too small to receive the expected amount of data. shutterModeCount is an invalid pointer. hCam is an invalid camera handle. | peak_status peak_ShutterMode_Set | ( | peak_camera_handle | hCam, |
| peak_shutter_mode | shutterMode ) |
Set the shutter mode.
Writes the desired shutter mode.
| [in] | hCam | The camera handle. |
| [in] | shutterMode | The shutter mode to set. |
shutterMode is out of range. Check the available shutter modes via peak_ShutterMode_GetList. hCam is an invalid camera handle.