pylablib.devices.BitFlow package¶
Submodules¶
pylablib.devices.BitFlow.BitFlow module¶
-
exception
pylablib.devices.BitFlow.BitFlow.
BitFlowError
[source]¶ Bases:
pylablib.core.devio.base.DeviceError
Generic BitFlow devices error
-
args
¶
-
with_traceback
()¶ Exception.with_traceback(tb) – set self.__traceback__ to tb and return self.
-
-
exception
pylablib.devices.BitFlow.BitFlow.
BitFlowTimeoutError
[source]¶ Bases:
pylablib.devices.BitFlow.BitFlow.BitFlowError
BitFlow frame timeout error
-
args
¶
-
with_traceback
()¶ Exception.with_traceback(tb) – set self.__traceback__ to tb and return self.
-
-
class
pylablib.devices.BitFlow.BitFlow.
TDeviceInfo
(idx, model, idreg)¶ Bases:
tuple
-
count
()¶ Return number of occurrences of value.
-
idreg
¶
-
idx
¶
-
index
()¶ Return first index of value.
Raises ValueError if the value is not present.
-
model
¶
-
-
pylablib.devices.BitFlow.BitFlow.
list_cameras
()[source]¶ List all cameras available through BitFlow interface
-
pylablib.devices.BitFlow.BitFlow.
get_cameras_number
()[source]¶ Get number of connected BitFlow cameras
-
class
pylablib.devices.BitFlow.BitFlow.
BitFlowFrameGrabber
(bitflow_idx=0, bitflow_camfile=None, do_open=True, **kwargs)[source]¶ Bases:
pylablib.devices.interface.camera.IROICamera
Generic BitFlow frame grabber interface.
Compared to
BitFlowCamera
, has more permissive initialization arguments, which simplifies its use as a base class for expanded cameras.Parameters: - bitflow_idx – board index, starting from 0
- bitflow_camfile – if not
None
, a path to a valid camera file used for this frame grabber and camera combination; in this case, a temporary camera file is generated based on the provided one and used to change some otherwise unavailable camera parameters such as ROI and pixel bit depth (they are otherwise fixed to whatever is specified in the default camera file) - do_open – if
False
, skip the last step of opening the device (should be opened in a subclass)
-
Error
¶ alias of
BitFlowError
-
TimeoutError
¶ alias of
BitFlowTimeoutError
-
get_device_info
()[source]¶ Get camera model data.
Return tuple
(idx, model, idreg)
with the board index, model number and the setting of the ID switch on the board
-
get_grabber_detector_size
()¶ Get camera detector size (in pixels) as a tuple
(width, height)
-
get_roi
()[source]¶ Get current ROI.
Return tuple
(hstart, hend, vstart, vend)
. hstart and hend specify horizontal image extent, vstart and vend specify vertical image extent (start is inclusive, stop is exclusive, starting from 0).
-
get_grabber_roi
()¶ Get current ROI.
Return tuple
(hstart, hend, vstart, vend)
. hstart and hend specify horizontal image extent, vstart and vend specify vertical image extent (start is inclusive, stop is exclusive, starting from 0).
-
set_roi
(hstart=0, hend=None, vstart=0, vend=None)[source]¶ Setup camera ROI.
hstart and hend specify horizontal image extent, vstart and vend specify vertical image extent (start is inclusive, stop is exclusive, starting from 0). By default, all non-supplied parameters take extreme values (0 for start, maximal for end).
-
set_grabber_roi
(hstart=0, hend=None, vstart=0, vend=None)¶ Setup camera ROI.
hstart and hend specify horizontal image extent, vstart and vend specify vertical image extent (start is inclusive, stop is exclusive, starting from 0). By default, all non-supplied parameters take extreme values (0 for start, maximal for end).
-
get_roi_limits
(hbin=1, vbin=1)[source]¶ Get the minimal and maximal ROI parameters.
Return tuple
(hlim, vlim)
, where each element is in turn a limit 5-tuple(min, max, pstep, sstep, maxbin)
with, correspondingly, minimal and maximal size, position and size step, and the maximal binning (fixed to 1 if not binning is allowed). In some cameras, the step and the minimal size depend on the binning, which can be supplied.
-
get_grabber_roi_limits
(hbin=1, vbin=1)¶ Get the minimal and maximal ROI parameters.
Return tuple
(hlim, vlim)
, where each element is in turn a limit 5-tuple(min, max, pstep, sstep, maxbin)
with, correspondingly, minimal and maximal size, position and size step, and the maximal binning (fixed to 1 if not binning is allowed). In some cameras, the step and the minimal size depend on the binning, which can be supplied.
-
class
BufferManager
(cam)[source]¶ Bases:
object
Buffer manager: stores, constantly reads and re-schedules buffers, keeps track of acquired frames and buffer overflow events
-
setup_acquisition
(mode='sequence', nframes=100, frame_merge=1)[source]¶ Setup acquisition mode.
mode can be either
"snap"
(single frame or a fixed number of frames) or"sequence"
(continuous acquisition). nframes sets up number of frames in the acquisition buffer. frame_merge specifies the number of frames to merge together to from one buffer; if it is larger than 1, several camera frames will be merged into a single frame grabber “super-frame” for acquisition, to lower the effective frame rate (which is capped at 2-4kFPS due to the necessity of Python loops). This is done transparently for the user, so the only visible change is the fact that the number of acquired frames is always updated in quanta offrame_merge
.
-
start_acquisition
(*args, **kwargs)[source]¶ Start acquisition.
Can take the same keyword parameters as :meth:``setup_acquisition. If the acquisition is not set up yet, set it up using the supplied parameters (use default of
setup_acquisition()
,if the parameter isNone
). Otherwise, if any supplied parameters are different from the current ones, change them and reset the acquisition.
-
FrameTransferError
¶ alias of
pylablib.devices.interface.camera.DefaultFrameTransferError
-
class
NoParameterCaller
(device, kind)¶ Bases:
object
Class to simplify calling functions without a parameter
-
apply_settings
(settings)¶ Apply the settings.
settings is the dict
{name: value}
of the device available settings. Non-applicable settings are ignored.
-
get_acquisition_parameters
()¶ Get acquisition parameters.
Return dictionary
{name: value}
-
get_data_dimensions
()¶ Get readout data dimensions (in pixels) as a tuple
(width, height)
; take indexing mode into account
-
get_device_variable
(key)¶ Get the value of a settings, status, or full info parameter
-
get_frame_format
()¶ Get format for the returned images.
Can be
"list"
(list of 2D arrays),"array"
(a single 3D array), or"chunks"
(list of 3D “chunk” arrays; supported for some cameras and provides the best performance).
-
get_frame_info_fields
()¶ Get the names of frame info fields.
Applicable when frame info format (set by
set_frame_info_format()
) is"list"
or"array"
.
-
get_frame_info_format
()¶ Get format of the frame info.
Can be
"namedtuple"
(potentially nested named tuples; convenient to get particular values),"list"
(flat list of values, with field names are given byget_frame_info_fields()
; convenient for building a table),"array"
(same as"list"
, but with a numpy array, which is easier to use for"chunks"
frame format), or"dict"
(flat dictionary with the same fields as the"list"
format; more resilient to future format changes)
-
get_frame_info_period
()¶ Get period of frame info acquisition.
Frame info might be skipped (set to
None
) except for frames which indices are divisible by period. Useful for certain cameras where acquiring frame info takes a lot of time and can reduce performance at higher frame rates. Note that this parameter can still be ignored (i.e., always set to 1) if the performance is not an issue for a given camera class.
-
get_frames_status
()¶ Get acquisition and buffer status.
Return tuple
(acquired, unread, skipped, size)
, whereacquired
is the total number of acquired frames,unread
is the number of acquired but not read frames,skipped
is the number of skipped (not read and then written over) frames, andbuffer_size
is the total buffer size (in frames).
-
get_full_info
(include=0)¶ Get dict
{name: value}
containing full device information (including status and settings).include specifies either a list of variables (only these variables are returned), a priority threshold (only values with the priority equal or higher are returned), or
"all"
(all available variables). Since the lowest priority is -10, settinginclude=-10
queries all available variables, which is equivalent toinclude="all"
.
-
get_full_status
(include=0)¶ Get dict
{name: value}
containing the device status (including settings).include specifies either a list of variables (only these variables are returned), a priority threshold (only values with the priority equal or higher are returned), or
"all"
(all available variables). Since the lowest priority is -10, settinginclude=-10
queries all available variables, which is equivalent toinclude="all"
.
-
get_image_indexing
()¶ Get indexing for the returned images.
Can be
"rct"
(first index row, second index column, rows counted from the top),"rcb"
(same as"rc"
, rows counted from the bottom),"xyt"
(first index column, second index row, rows counted from the top), or"xyb"
(same as"xyt"
, rows counted from the bottom)
-
get_new_images_range
()¶ Get the range of the new images.
Return tuple
(first, last)
with images range (first inclusive). If no images are available, returnNone
. If some images were in the buffer were overwritten, exclude them from the range.
-
get_settings
(include=0)¶ Get dict
{name: value}
containing all the device settings.include specifies either a list of variables (only these variables are returned), a priority threshold (only values with the priority equal or higher are returned), or
"all"
(all available variables). Since the lowest priority is -10, settinginclude=-10
queries all available variables, which is equivalent toinclude="all"
.
-
grab
(nframes=1, frame_timeout=5.0, missing_frame='skip', return_info=False, buff_size=None)¶ Snap nframes images (with preset image read mode parameters)
buff_size determines buffer size (if
None
, use the default size). Timeout is specified for a single-frame acquisition, not for the whole acquisition time. missing_frame determines what to do with frames which have been lost: can be"none"
(replacing them withNone
),"zero"
(replacing them with zero-filled frame), or"skip"
(skipping them, while still keeping total returned frames number to n). Ifreturn_info==True
, return tuple(frames, infos)
, whereinfos
is a list of frame info tuples (camera-dependent); if some frames are missing andmissing_frame!="skip"
, the corresponding frame info isNone
.
-
is_acquisition_setup
()¶ Check if acquisition is set up.
If the camera does not support separate acquisition setup, always return
True
.
-
pausing_acquisition
(clear=None, stop=True, setup_after=None, start_after=True, combine_nested=True)¶ Context manager which temporarily pauses acquisition during execution of
with
block.Useful for applying certain settings which can’t be changed during the acquisition. If
clear==True
, clear acquisition in addition to stopping (by default, use the class default specified as_clear_pausing_acquisition
attribute). Ifstop==True
, stop the acquisition (ifclear==True
, stop regardless). Ifsetup_after==True
, setup the acquisition after pause if necessary (None
means setup only if clearing was required). Ifstart_after==True
, start the acquisition after pause if necessary (None
means start only if stopping was required). Ifcombine_nested==True
, then any nestedpausing_acquisition
calls will stop/clear acquisition as necessary, but won’t setup/start it again until thispausing_acquisition
call is complete.Yields tuple
(acq_in_progress, acq_params)
, which indicates whether acquisition is currently in progress, and what are the current acquisition parameters.
-
read_multiple_images
(rng=None, peek=False, missing_frame='skip', return_info=False, return_rng=False)¶ Read multiple images specified by rng (by default, all un-read images).
If rng is specified, it is a tuple
(first, last)
with images range (first inclusive). If no new frames are available, return an empty list; if no acquisition is running, returnNone
. Ifpeek==True
, return images but not mark them as read. missing_frame determines what to do with frames which are out of range (missing or lost): can be"none"
(replacing them withNone
),"zero"
(replacing them with zero-filled frame), or"skip"
(skipping them). Ifreturn_info==True
, return tuple(frames, infos)
, whereinfos
is a list of frame info tuples (camera-dependent, by default, only the frame index); if some frames are missing andmissing_frame!="skip"
, the corresponding frame info isNone
. ifreturn_rng==True
, return the range covered resulting frames; ifmissing_frame=="skip"
, the range can be smaller than the supplied rng if some frames are skipped.
-
read_newest_image
(peek=False, return_info=False)¶ Read the newest un-read image.
If no un-read frames are available, return
None
. Ifpeek==True
, return the image but not mark it as read. Ifreturn_info==True
, return tuple(frame, info)
, whereinfo
is an info tuples (camera-dependent, seeread_multiple_images()
).
-
read_oldest_image
(peek=False, return_info=False)¶ Read the oldest un-read image.
If no un-read frames are available, return
None
. Ifpeek==True
, return the image but not mark it as read. Ifreturn_info==True
, return tuple(frame, info)
, whereinfo
is an info tuples (camera-dependent, seeread_multiple_images()
).
-
set_device_variable
(key, value)¶ Set the value of a settings parameter
-
set_frame_format
(fmt)¶ Set format for the returned images.
Can be
"list"
(list of 2D arrays),"array"
(a single 3D array),"chunks"
(list of 3D “chunk” arrays; supported for some cameras and provides the best performance), or"try_chunks"
(same as"chunks"
, but if chunks are not supported, set to"list"
instead). If format is"chunks"
and chunks are not supported by the camera, it results in one frame per chunk. Note that if the format is set to"array"
or"chunks"
, the frame info format is also automatically set to"array"
. If the format is set to"chunks"
, then the image info is also returned in chunks form (list of 2D info arrays with the same length as the corresponding frame chunks).
-
set_frame_info_format
(fmt, include_fields=None)¶ Set format of the frame info.
Can be
"namedtuple"
(potentially nested named tuples; convenient to get particular values),"list"
(flat list of values, with field names are given byget_frame_info_fields()
; convenient for building a table),"array"
(same as"list"
, but with a numpy array, which is easier to use for"chunks"
frame format), or"dict"
(flat dictionary with the same fields as the"list"
format; more resilient to future format changes) If include_fields is notNone
, it specifies the fields included for non-"tuple"
formats; note that order or include_fields is ignored, and the resulting fields are always ordered same as in the original.
-
set_frame_info_period
(period=1)¶ Set period of frame info acquisition.
Frame info might be skipped (set to
None
) except for frames which indices are divisible by period. Useful for certain cameras where acquiring frame info takes a lot of time and can reduce performance at higher frame rates. Note that this parameter can still be ignored (i.e., always set to 1) if the performance is not an issue for a given camera class.
-
set_image_indexing
(indexing)¶ Set up indexing for the returned images.
Can be
"rct"
(first index row, second index column, rows counted from the top),"rcb"
(same as"rc"
, rows counted from the bottom),"xyt"
(first index column, second index row, rows counted from the top), or"xyb"
(same as"xyt"
, rows counted from the bottom)
-
snap
(timeout=5.0, return_info=False)¶ Snap a single frame
-
wait_for_frame
(since='lastread', nframes=1, timeout=20.0, error_on_stopped=False)¶ Wait for one or several new camera frames.
since specifies the reference point for waiting to acquire nframes frames; can be “lastread”`` (from the last read frame),
"lastwait"
(wait for the last successfulwait_for_frame()
call),"now"
(from the start of the current call), or"start"
(from the acquisition start, i.e., wait until nframes frames have been acquired). timeout can be either a number,None
(infinite timeout), or a tuple(timeout, frame_timeout)
, in which case the call times out if the total time exceedstimeout
, or a single frame wait exceedsframe_timeout
. If the call times out, raiseTimeoutError
. Iferror_on_stopped==True
and the acquisition is not running, raiseError
; otherwise, simply returnFalse
without waiting.
-
class
pylablib.devices.BitFlow.BitFlow.
BitFlowCamera
(idx=0, camfile=None)[source]¶ Bases:
pylablib.devices.BitFlow.BitFlow.BitFlowFrameGrabber
Generic BitFlow camera interface.
Parameters: idx – board index, starting from 0 -
class
BufferManager
(cam)¶ Bases:
object
Buffer manager: stores, constantly reads and re-schedules buffers, keeps track of acquired frames and buffer overflow events
-
get_status
()¶ Get counter status: tuple
(acquired,)
-
is_running
()¶ Check if the buffer loop is running
-
reset
()¶ Reset counter (on frame acquisition)
-
start_loop
()¶ Start buffer scheduling loop
-
stop_loop
()¶ Stop buffer scheduling loop
-
-
Error
¶ alias of
BitFlowError
-
FrameTransferError
¶ alias of
pylablib.devices.interface.camera.DefaultFrameTransferError
-
class
NoParameterCaller
(device, kind)¶ Bases:
object
Class to simplify calling functions without a parameter
-
TimeoutError
¶ alias of
BitFlowTimeoutError
-
acquisition_in_progress
()¶ Check if acquisition is in progress
-
apply_settings
(settings)¶ Apply the settings.
settings is the dict
{name: value}
of the device available settings. Non-applicable settings are ignored.
-
clear_acquisition
()¶ Clear all acquisition details and free all buffers
-
close
()¶ Close connection to the camera
-
get_acquisition_parameters
()¶ Get acquisition parameters.
Return dictionary
{name: value}
-
get_data_dimensions
()¶ Get readout data dimensions (in pixels) as a tuple
(width, height)
; take indexing mode into account
-
get_detector_size
()¶ Get camera detector size (in pixels) as a tuple
(width, height)
-
get_device_info
()¶ Get camera model data.
Return tuple
(idx, model, idreg)
with the board index, model number and the setting of the ID switch on the board
-
get_device_variable
(key)¶ Get the value of a settings, status, or full info parameter
-
get_frame_format
()¶ Get format for the returned images.
Can be
"list"
(list of 2D arrays),"array"
(a single 3D array), or"chunks"
(list of 3D “chunk” arrays; supported for some cameras and provides the best performance).
-
get_frame_info_fields
()¶ Get the names of frame info fields.
Applicable when frame info format (set by
set_frame_info_format()
) is"list"
or"array"
.
-
get_frame_info_format
()¶ Get format of the frame info.
Can be
"namedtuple"
(potentially nested named tuples; convenient to get particular values),"list"
(flat list of values, with field names are given byget_frame_info_fields()
; convenient for building a table),"array"
(same as"list"
, but with a numpy array, which is easier to use for"chunks"
frame format), or"dict"
(flat dictionary with the same fields as the"list"
format; more resilient to future format changes)
-
get_frame_info_period
()¶ Get period of frame info acquisition.
Frame info might be skipped (set to
None
) except for frames which indices are divisible by period. Useful for certain cameras where acquiring frame info takes a lot of time and can reduce performance at higher frame rates. Note that this parameter can still be ignored (i.e., always set to 1) if the performance is not an issue for a given camera class.
-
get_frames_status
()¶ Get acquisition and buffer status.
Return tuple
(acquired, unread, skipped, size)
, whereacquired
is the total number of acquired frames,unread
is the number of acquired but not read frames,skipped
is the number of skipped (not read and then written over) frames, andbuffer_size
is the total buffer size (in frames).
-
get_full_info
(include=0)¶ Get dict
{name: value}
containing full device information (including status and settings).include specifies either a list of variables (only these variables are returned), a priority threshold (only values with the priority equal or higher are returned), or
"all"
(all available variables). Since the lowest priority is -10, settinginclude=-10
queries all available variables, which is equivalent toinclude="all"
.
-
get_full_status
(include=0)¶ Get dict
{name: value}
containing the device status (including settings).include specifies either a list of variables (only these variables are returned), a priority threshold (only values with the priority equal or higher are returned), or
"all"
(all available variables). Since the lowest priority is -10, settinginclude=-10
queries all available variables, which is equivalent toinclude="all"
.
-
get_grabber_detector_size
()¶ Get camera detector size (in pixels) as a tuple
(width, height)
-
get_grabber_roi
()¶ Get current ROI.
Return tuple
(hstart, hend, vstart, vend)
. hstart and hend specify horizontal image extent, vstart and vend specify vertical image extent (start is inclusive, stop is exclusive, starting from 0).
-
get_grabber_roi_limits
(hbin=1, vbin=1)¶ Get the minimal and maximal ROI parameters.
Return tuple
(hlim, vlim)
, where each element is in turn a limit 5-tuple(min, max, pstep, sstep, maxbin)
with, correspondingly, minimal and maximal size, position and size step, and the maximal binning (fixed to 1 if not binning is allowed). In some cameras, the step and the minimal size depend on the binning, which can be supplied.
-
get_image_indexing
()¶ Get indexing for the returned images.
Can be
"rct"
(first index row, second index column, rows counted from the top),"rcb"
(same as"rc"
, rows counted from the bottom),"xyt"
(first index column, second index row, rows counted from the top), or"xyb"
(same as"xyt"
, rows counted from the bottom)
-
get_new_images_range
()¶ Get the range of the new images.
Return tuple
(first, last)
with images range (first inclusive). If no images are available, returnNone
. If some images were in the buffer were overwritten, exclude them from the range.
-
get_roi
()¶ Get current ROI.
Return tuple
(hstart, hend, vstart, vend)
. hstart and hend specify horizontal image extent, vstart and vend specify vertical image extent (start is inclusive, stop is exclusive, starting from 0).
-
get_roi_limits
(hbin=1, vbin=1)¶ Get the minimal and maximal ROI parameters.
Return tuple
(hlim, vlim)
, where each element is in turn a limit 5-tuple(min, max, pstep, sstep, maxbin)
with, correspondingly, minimal and maximal size, position and size step, and the maximal binning (fixed to 1 if not binning is allowed). In some cameras, the step and the minimal size depend on the binning, which can be supplied.
-
get_settings
(include=0)¶ Get dict
{name: value}
containing all the device settings.include specifies either a list of variables (only these variables are returned), a priority threshold (only values with the priority equal or higher are returned), or
"all"
(all available variables). Since the lowest priority is -10, settinginclude=-10
queries all available variables, which is equivalent toinclude="all"
.
-
grab
(nframes=1, frame_timeout=5.0, missing_frame='skip', return_info=False, buff_size=None)¶ Snap nframes images (with preset image read mode parameters)
buff_size determines buffer size (if
None
, use the default size). Timeout is specified for a single-frame acquisition, not for the whole acquisition time. missing_frame determines what to do with frames which have been lost: can be"none"
(replacing them withNone
),"zero"
(replacing them with zero-filled frame), or"skip"
(skipping them, while still keeping total returned frames number to n). Ifreturn_info==True
, return tuple(frames, infos)
, whereinfos
is a list of frame info tuples (camera-dependent); if some frames are missing andmissing_frame!="skip"
, the corresponding frame info isNone
.
-
is_acquisition_setup
()¶ Check if acquisition is set up.
If the camera does not support separate acquisition setup, always return
True
.
-
is_opened
()¶ Check if the device is connected
-
open
()¶ Open connection to the camera
-
pausing_acquisition
(clear=None, stop=True, setup_after=None, start_after=True, combine_nested=True)¶ Context manager which temporarily pauses acquisition during execution of
with
block.Useful for applying certain settings which can’t be changed during the acquisition. If
clear==True
, clear acquisition in addition to stopping (by default, use the class default specified as_clear_pausing_acquisition
attribute). Ifstop==True
, stop the acquisition (ifclear==True
, stop regardless). Ifsetup_after==True
, setup the acquisition after pause if necessary (None
means setup only if clearing was required). Ifstart_after==True
, start the acquisition after pause if necessary (None
means start only if stopping was required). Ifcombine_nested==True
, then any nestedpausing_acquisition
calls will stop/clear acquisition as necessary, but won’t setup/start it again until thispausing_acquisition
call is complete.Yields tuple
(acq_in_progress, acq_params)
, which indicates whether acquisition is currently in progress, and what are the current acquisition parameters.
-
read_multiple_images
(rng=None, peek=False, missing_frame='skip', return_info=False, return_rng=False)¶ Read multiple images specified by rng (by default, all un-read images).
If rng is specified, it is a tuple
(first, last)
with images range (first inclusive). If no new frames are available, return an empty list; if no acquisition is running, returnNone
. Ifpeek==True
, return images but not mark them as read. missing_frame determines what to do with frames which are out of range (missing or lost): can be"none"
(replacing them withNone
),"zero"
(replacing them with zero-filled frame), or"skip"
(skipping them). Ifreturn_info==True
, return tuple(frames, infos)
, whereinfos
is a list of frame info tuples (camera-dependent, by default, only the frame index); if some frames are missing andmissing_frame!="skip"
, the corresponding frame info isNone
. ifreturn_rng==True
, return the range covered resulting frames; ifmissing_frame=="skip"
, the range can be smaller than the supplied rng if some frames are skipped.
-
read_newest_image
(peek=False, return_info=False)¶ Read the newest un-read image.
If no un-read frames are available, return
None
. Ifpeek==True
, return the image but not mark it as read. Ifreturn_info==True
, return tuple(frame, info)
, whereinfo
is an info tuples (camera-dependent, seeread_multiple_images()
).
-
read_oldest_image
(peek=False, return_info=False)¶ Read the oldest un-read image.
If no un-read frames are available, return
None
. Ifpeek==True
, return the image but not mark it as read. Ifreturn_info==True
, return tuple(frame, info)
, whereinfo
is an info tuples (camera-dependent, seeread_multiple_images()
).
-
set_device_variable
(key, value)¶ Set the value of a settings parameter
-
set_frame_format
(fmt)¶ Set format for the returned images.
Can be
"list"
(list of 2D arrays),"array"
(a single 3D array),"chunks"
(list of 3D “chunk” arrays; supported for some cameras and provides the best performance), or"try_chunks"
(same as"chunks"
, but if chunks are not supported, set to"list"
instead). If format is"chunks"
and chunks are not supported by the camera, it results in one frame per chunk. Note that if the format is set to"array"
or"chunks"
, the frame info format is also automatically set to"array"
. If the format is set to"chunks"
, then the image info is also returned in chunks form (list of 2D info arrays with the same length as the corresponding frame chunks).
-
set_frame_info_format
(fmt, include_fields=None)¶ Set format of the frame info.
Can be
"namedtuple"
(potentially nested named tuples; convenient to get particular values),"list"
(flat list of values, with field names are given byget_frame_info_fields()
; convenient for building a table),"array"
(same as"list"
, but with a numpy array, which is easier to use for"chunks"
frame format), or"dict"
(flat dictionary with the same fields as the"list"
format; more resilient to future format changes) If include_fields is notNone
, it specifies the fields included for non-"tuple"
formats; note that order or include_fields is ignored, and the resulting fields are always ordered same as in the original.
-
set_frame_info_period
(period=1)¶ Set period of frame info acquisition.
Frame info might be skipped (set to
None
) except for frames which indices are divisible by period. Useful for certain cameras where acquiring frame info takes a lot of time and can reduce performance at higher frame rates. Note that this parameter can still be ignored (i.e., always set to 1) if the performance is not an issue for a given camera class.
-
set_grabber_roi
(hstart=0, hend=None, vstart=0, vend=None)¶ Setup camera ROI.
hstart and hend specify horizontal image extent, vstart and vend specify vertical image extent (start is inclusive, stop is exclusive, starting from 0). By default, all non-supplied parameters take extreme values (0 for start, maximal for end).
-
set_image_indexing
(indexing)¶ Set up indexing for the returned images.
Can be
"rct"
(first index row, second index column, rows counted from the top),"rcb"
(same as"rc"
, rows counted from the bottom),"xyt"
(first index column, second index row, rows counted from the top), or"xyb"
(same as"xyt"
, rows counted from the bottom)
-
set_roi
(hstart=0, hend=None, vstart=0, vend=None)¶ Setup camera ROI.
hstart and hend specify horizontal image extent, vstart and vend specify vertical image extent (start is inclusive, stop is exclusive, starting from 0). By default, all non-supplied parameters take extreme values (0 for start, maximal for end).
-
setup_acquisition
(mode='sequence', nframes=100, frame_merge=1)¶ Setup acquisition mode.
mode can be either
"snap"
(single frame or a fixed number of frames) or"sequence"
(continuous acquisition). nframes sets up number of frames in the acquisition buffer. frame_merge specifies the number of frames to merge together to from one buffer; if it is larger than 1, several camera frames will be merged into a single frame grabber “super-frame” for acquisition, to lower the effective frame rate (which is capped at 2-4kFPS due to the necessity of Python loops). This is done transparently for the user, so the only visible change is the fact that the number of acquired frames is always updated in quanta offrame_merge
.
-
snap
(timeout=5.0, return_info=False)¶ Snap a single frame
-
start_acquisition
(*args, **kwargs)¶ Start acquisition.
Can take the same keyword parameters as :meth:``setup_acquisition. If the acquisition is not set up yet, set it up using the supplied parameters (use default of
setup_acquisition()
,if the parameter isNone
). Otherwise, if any supplied parameters are different from the current ones, change them and reset the acquisition.
-
stop_acquisition
()¶ Stop acquisition
-
wait_for_frame
(since='lastread', nframes=1, timeout=20.0, error_on_stopped=False)¶ Wait for one or several new camera frames.
since specifies the reference point for waiting to acquire nframes frames; can be “lastread”`` (from the last read frame),
"lastwait"
(wait for the last successfulwait_for_frame()
call),"now"
(from the start of the current call), or"start"
(from the acquisition start, i.e., wait until nframes frames have been acquired). timeout can be either a number,None
(infinite timeout), or a tuple(timeout, frame_timeout)
, in which case the call times out if the total time exceedstimeout
, or a single frame wait exceedsframe_timeout
. If the call times out, raiseTimeoutError
. Iferror_on_stopped==True
and the acquisition is not running, raiseError
; otherwise, simply returnFalse
without waiting.
-
class
-
class
pylablib.devices.BitFlow.BitFlow.
CameraFileEditor
[source]¶ Bases:
object
Camera file editor based on XML ElementTree parser.
Provides methods for loading and saving the tree, and to change basic parameters in the default operational mode.
-
load
(path, clean=True)[source]¶ Load file from the given path and optionally check the structure remove the non-default modes
-
get_mode_parameters
()[source]¶ Get default operational mode parameters.
Return tuple
(size, fmt, bpp)
with the acquisition size(xsize, ysize)
, format (e.g.,"1X2-1Y"
) and the number of bits per pixel. If the tree is not loaded or mode is not present, returnNone
.
-
set_mode_parameters
(size=None, fmt=None, bpp=None)[source]¶ Get default operational mode parameters.
size is the acquisition size
(xsize, ysize)
, fmt is the tap format (e.g.,"1X2-1Y"
), and bpp is the number of bits per pixel. Parameters set toNone
stay unchanged. ReturnTrue
if any parameters have changed their values andFalse
otherwise.
-