grope
July 21, 2008, 03:19:02
hi,
I used the "Dialog Application Wizard" to create a dialog based application, and use clistener class to show the frames, but how to let it show the region of interested(ROI).
I tried the function below:
void CControlDlg::OnForFree()
{
// TODO: Add your command handler code here
// Load the ROI filter from the stdfilters.ftf module.
#ifdef _DEBUG
smart_com<DShowLib::IFrameFilter> pFilter = FilterLoader::createFilter( "ROI", // Filter name.
"stdfiltersd.ftf" ); // Module file.
#else
smart_com pFilter = FilterLoader::createFilter( "ROI", // Filter name.
"stdfilters.ftf" ); // Module file.
#endif
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_cGrabber.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 );
pFilter->endParamTransfer();
pFilter->getParameter( "Height",lHeight );
pFilter->getParameter( "Width", lWidth );
tFrameFilterList filterList;
}
}
but it doesn't work, i am a new user, thank you!
I used the "Dialog Application Wizard" to create a dialog based application, and use clistener class to show the frames, but how to let it show the region of interested(ROI).
I tried the function below:
void CControlDlg::OnForFree()
{
// TODO: Add your command handler code here
// Load the ROI filter from the stdfilters.ftf module.
#ifdef _DEBUG
smart_com<DShowLib::IFrameFilter> pFilter = FilterLoader::createFilter( "ROI", // Filter name.
"stdfiltersd.ftf" ); // Module file.
#else
smart_com pFilter = FilterLoader::createFilter( "ROI", // Filter name.
"stdfilters.ftf" ); // Module file.
#endif
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_cGrabber.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 );
pFilter->endParamTransfer();
pFilter->getParameter( "Height",lHeight );
pFilter->getParameter( "Width", lWidth );
tFrameFilterList filterList;
}
}
but it doesn't work, i am a new user, thank you!