IC Imaging Control C++

ROI Filter

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

Get in touch with us


About The Imaging Source

Established in 1990, The Imaging Source is one of the leading manufacturers of industrial cameras, frame grabbers and video converters for production automation, quality assurance, logistics, medicine, science and security.

Our comprehensive range of cameras with USB 3.1, USB 3.0, USB 2.0, GigE interfaces and other innovative machine vision products are renowned for their high quality and ability to meet the performance requirements of demanding applications.

Automated Imaging Association ISO 9001:2015 certified

Contact us