grab_data_asyncT_grab_data_asyncGrabDataAsyncGrabDataAsyncgrab_data_async (Operator)
Name
grab_data_asyncT_grab_data_asyncGrabDataAsyncGrabDataAsyncgrab_data_async
— Asynchronous grab of images and preprocessed image data from the specified
image acquisition device.
Signature
void GrabDataAsync(HObject* Image, HObject* Region, HObject* Contours, const HTuple& AcqHandle, const HTuple& MaxDelay, HTuple* Data)
HRegion HImage::GrabDataAsync(HXLDCont* Contours, const HFramegrabber& AcqHandle, double MaxDelay, HTuple* Data)
HRegion HImage::GrabDataAsync(HXLDCont* Contours, const HFramegrabber& AcqHandle, double MaxDelay, HString* Data)
HImage HRegion::GrabDataAsync(HXLDCont* Contours, const HFramegrabber& AcqHandle, double MaxDelay, HTuple* Data)
HImage HRegion::GrabDataAsync(HXLDCont* Contours, const HFramegrabber& AcqHandle, double MaxDelay, HString* Data)
HImage HFramegrabber::GrabDataAsync(HRegion* Region, HXLDCont* Contours, double MaxDelay, HTuple* Data) const
HImage HFramegrabber::GrabDataAsync(HRegion* Region, HXLDCont* Contours, double MaxDelay, HString* Data) const
static void HOperatorSet.GrabDataAsync(out HObject image, out HObject region, out HObject contours, HTuple acqHandle, HTuple maxDelay, out HTuple data)
HRegion HImage.GrabDataAsync(out HXLDCont contours, HFramegrabber acqHandle, double maxDelay, out HTuple data)
HRegion HImage.GrabDataAsync(out HXLDCont contours, HFramegrabber acqHandle, double maxDelay, out string data)
HImage HRegion.GrabDataAsync(out HXLDCont contours, HFramegrabber acqHandle, double maxDelay, out HTuple data)
HImage HRegion.GrabDataAsync(out HXLDCont contours, HFramegrabber acqHandle, double maxDelay, out string data)
HImage HFramegrabber.GrabDataAsync(out HRegion region, out HXLDCont contours, double maxDelay, out HTuple data)
HImage HFramegrabber.GrabDataAsync(out HRegion region, out HXLDCont contours, double maxDelay, out string data)
def grab_data_async(acq_handle: HHandle, max_delay: float) -> Tuple[HObject, HObject, HObject, Sequence[HTupleElementType]]
def grab_data_async_s(acq_handle: HHandle, max_delay: float) -> Tuple[HObject, HObject, HObject, HTupleElementType]
Description
The operator grab_data_asyncgrab_data_asyncGrabDataAsyncGrabDataAsyncGrabDataAsyncgrab_data_async
requests asynchronously grabbed images
and preprocessed image data from the image acquisition device specified by
AcqHandleAcqHandleAcqHandleAcqHandleacqHandleacq_handle
.
By default, grab_data_asyncgrab_data_asyncGrabDataAsyncGrabDataAsyncGrabDataAsyncgrab_data_async
also starts the next asynchronous grab
before the operator returns.
More information about the behavior of a specific image acquisition device
can be found in the corresponding interface documentation in the directory
'doc/html/reference/acquisition'"doc/html/reference/acquisition""doc/html/reference/acquisition""doc/html/reference/acquisition""doc/html/reference/acquisition""doc/html/reference/acquisition".
The desired operational mode of the image acquisition device as well as a
suitable image part and additional interface-specific settings can be
specified using the operators open_framegrabberopen_framegrabberOpenFramegrabberOpenFramegrabberOpenFramegrabberopen_framegrabber
and
set_framegrabber_paramset_framegrabber_paramSetFramegrabberParamSetFramegrabberParamSetFramegrabberParamset_framegrabber_param
.
Depending on the current configuration of the image acquisition device, the
preprocessed image data can be returned in terms of images
(ImageImageImageImageimageimage
), regions (RegionRegionRegionRegionregionregion
), XLD contours
(ContoursContoursContoursContourscontourscontours
), and control data (DataDataDataDatadatadata
).
The grab of the next image is finished by calling
grab_data_asyncgrab_data_asyncGrabDataAsyncGrabDataAsyncGrabDataAsyncgrab_data_async
or grab_image_asyncgrab_image_asyncGrabImageAsyncGrabImageAsyncGrabImageAsyncgrab_image_async
. If more than
MaxDelayMaxDelayMaxDelayMaxDelaymaxDelaymax_delay
ms have passed since the asynchronous grab was
started, the asynchronously grabbed image is considered as too old
and a new image is grabbed, if necessary. If a negative value is assigned to
MaxDelayMaxDelayMaxDelayMaxDelaymaxDelaymax_delay
, this control mechanism is deactivated.
To abort the grab, the operator set_framegrabber_paramset_framegrabber_paramSetFramegrabberParamSetFramegrabberParamSetFramegrabberParamset_framegrabber_param
with the
parameter 'do_abort_grab'
can be used if the specific image
acquisition interface supports it. Note that as an exception from
the description of the concurrent usage in multiple threads (see below)
'do_abort_grab'
can also be used from another thread.
Please note that if you call the operators grab_imagegrab_imageGrabImageGrabImageGrabImagegrab_image
or
grab_datagrab_dataGrabDataGrabDataGrabDatagrab_data
after grab_data_asyncgrab_data_asyncGrabDataAsyncGrabDataAsyncGrabDataAsyncgrab_data_async
, the asynchronous
grab started by grab_data_asyncgrab_data_asyncGrabDataAsyncGrabDataAsyncGrabDataAsyncgrab_data_async
is aborted and a new
synchronous grab is started.
Attention
For a multithreaded application all image acquisition operators
(as listed in open_framegrabberopen_framegrabberOpenFramegrabberOpenFramegrabberOpenFramegrabberopen_framegrabber
) are
an own group in which info_framegrabberinfo_framegrabberInfoFramegrabberInfoFramegrabberInfoFramegrabberinfo_framegrabber
, open_framegrabberopen_framegrabberOpenFramegrabberOpenFramegrabberOpenFramegrabberopen_framegrabber
,
close_framegrabberclose_framegrabberCloseFramegrabberCloseFramegrabberCloseFramegrabberclose_framegrabber
and close_all_framegrabbersclose_all_framegrabbersCloseAllFramegrabbersCloseAllFramegrabbersCloseAllFramegrabbersclose_all_framegrabbers
are
executed exclusively.
grab_data_asyncgrab_data_asyncGrabDataAsyncGrabDataAsyncGrabDataAsyncgrab_data_async
runs in parallel with all non-exclusive
operators inside and outside of this group.
Execution Information
- Multithreading type: reentrant (runs in parallel with non-exclusive operators).
- Multithreading scope: global (may be called from any thread).
- Processed without parallelization.
Parameters
ImageImageImageImageimageimage
(output_object) image(-array) →
objectHImageHObjectHImageHobject * (byte / real / uint2)
Grabbed image data.
RegionRegionRegionRegionregionregion
(output_object) region(-array) →
objectHRegionHObjectHRegionHobject *
Pre-processed image regions.
ContoursContoursContoursContourscontourscontours
(output_object) xld_cont(-array) →
objectHXLDContHObjectHXLDContHobject *
Pre-processed XLD contours.
AcqHandleAcqHandleAcqHandleAcqHandleacqHandleacq_handle
(input_control) framegrabber →
HFramegrabber, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)
Handle of the acquisition device to be used.
MaxDelayMaxDelayMaxDelayMaxDelaymaxDelaymax_delay
(input_control) number →
HTuplefloatHTupleHtuple (real) (double) (double) (double)
Maximum tolerated delay between the start of the
asynchronous grab and the delivery of the image [ms].
Default value: -1.0
Suggested values: -1.0, 20.0, 33.3, 40.0, 66.6, 80.0, 99.9
DataDataDataDatadatadata
(output_control) string(-array) →
HTupleSequence[HTupleElementType]HTupleHtuple (string / real / integer / handle) (string / double / int / long / HHandle) (HString / double / Hlong / HHandle) (char* / double / Hlong / handle)
Pre-processed control data.
Example (HDevelop)
* Select a suitable image acquisition interface name AcqName
open_framegrabber(AcqName,1,1,0,0,0,0,'default',-1,'default',-1.0, \
'default','default','default',-1,-1,AcqHandle)
* Grab image, segment it, and start next grab
grab_data_async (Image1, Region1, Contours1, AcqHandle, -1.0, Data1)
* Process data 1...
* Finish asynchronous grab, segment this image, and start next grab
grab_data_async (Image2, Region2, Contours2, AcqHandle, -1.0, Data2)
* Process data 2...
close_framegrabber(AcqHandle)
Result
If the image acquisition device is open and supports the image
acquisition via grab_data_asyncgrab_data_asyncGrabDataAsyncGrabDataAsyncGrabDataAsyncgrab_data_async
, the operator
grab_data_asyncgrab_data_asyncGrabDataAsyncGrabDataAsyncGrabDataAsyncgrab_data_async
returns the value 2 (H_MSG_TRUE). Otherwise an
exception is raised.
Possible Predecessors
open_framegrabberopen_framegrabberOpenFramegrabberOpenFramegrabberOpenFramegrabberopen_framegrabber
,
grab_image_startgrab_image_startGrabImageStartGrabImageStartGrabImageStartgrab_image_start
,
set_framegrabber_paramset_framegrabber_paramSetFramegrabberParamSetFramegrabberParamSetFramegrabberParamset_framegrabber_param
Possible Successors
grab_image_asyncgrab_image_asyncGrabImageAsyncGrabImageAsyncGrabImageAsyncgrab_image_async
,
set_framegrabber_paramset_framegrabber_paramSetFramegrabberParamSetFramegrabberParamSetFramegrabberParamset_framegrabber_param
,
close_framegrabberclose_framegrabberCloseFramegrabberCloseFramegrabberCloseFramegrabberclose_framegrabber
See also
open_framegrabberopen_framegrabberOpenFramegrabberOpenFramegrabberOpenFramegrabberopen_framegrabber
,
info_framegrabberinfo_framegrabberInfoFramegrabberInfoFramegrabberInfoFramegrabberinfo_framegrabber
,
set_framegrabber_paramset_framegrabber_paramSetFramegrabberParamSetFramegrabberParamSetFramegrabberParamset_framegrabber_param
Module
Foundation