ROI Filter

The ROI filter cuts a region of interest out of the incoming frames. It creates a new output video format.

Using the ROI Filter

The ROI filter is loaded by an application using following code:

        // Load the ROI filter from the stdfilters.ftf module.
#ifdef _DEBUG
    smart_com<IFrameFilter> pFilter = FilterLoader::createFilter( "ROI",   // Filter name.
                                                                  "stdfiltersd.ftf" ); // Module file.
#else
    smart_com<IFrameFilter> pFilter = FilterLoader::createFilter( "ROI",   // Filter name.
                                                                  "stdfilters.ftf" ); // Module file.
#endif

Parameters

The part of the image that is copied to the destination frame is determined by four filter parameters:

Left
This value specifies the left column on the source frame at which the region of interest (ROI) starts. This value is used to move the region of interest horizontally to the source frame. It can be changed regardless of whether the live video is running or not.
Top
This value specifies the top row on the source frame at which the region of interest starts. This value is used to move the region of interest vertically to the source frame. It can be changed regardless of whether the live video is running or not.
Width
This value specifies the width of the region of interest. It can only be set while the live video is stopped. Otherwise, the resulting video format would be changed.
The width will be aligned to eight pixels in the filter automatically.
Height
This value specifies the height of the region of interest. It can only be set while the live video is stopped. Otherwise, the resulting video format would be changed.

Property Dialog

The dimensions and the start positions of the region of interest can be specified in the ROI filter's property dialog:

image

Programmatically access the Parameter

The following source code can be used, if the parameter should be set by an application:

long lLeft = 0;
long lTop = 0;
long lHeight = 0;
long lWidth = 0;
// Retrieve the current ROI rectangle:
pFilter->getParameter( "Left", lLeft );
pFilter->getParameter( "Top", lTop );
pFilter->getParameter( "Height",lHeight  );
pFilter->getParameter( "Width", lWidth );
// Set a new ROI.
lLeft = 100;
lTop = 50;
// The position of the ROI can be set, regardless of whether the live video is running
// because the size of the resulting video format is not changed.
pFilter->setParameter( "Left", lLeft );
pFilter->setParameter( "Top", lTop );
if( m_Grabber.isLive() == false )
{
    // A new ROI width and height can only be set while the live video is stopped. Otherwise,
    // an error is returned by setParameter().
    lHeight = 120;
    lWidth = 180;
    pFilter->setParameter( "Height",lHeight  );
    pFilter->setParameter( "Width", lWidth );
}

<< IC Imaging Control Standard Filters