Пример #1
0
void Monitor::moveToFrame(int f)
{
	if(mInputType == AviFile)
	{
		if(mCvCapture)
		{
			cvSetCaptureProperty(mCvCapture, CV_CAP_PROP_POS_FRAMES, f);
			IplImage *im = cvQueryFrame(mCvCapture);
			mCurrentFrameNumber = f;
			lockImages();
			convertRGB2ARGB(im, mCurrImage);
			releaseImages();
		}
	}
	else if( mInputType == ImageSequence)
	{
		if(f >= mFirstFrameNumber && f <= mLastFrameNumber)
		{
			QString fname = mPath + mFileNamePrefix + QString("%1").arg(f, 5, 10, QChar('0')) + mExtention;

			lockImages();
			mCurrImage->load(fname);
			mCurrentFrameNumber = f;
			releaseImages();
		}
	}
}
Пример #2
0
void Monitor::setCvCapture(CvCapture* c)
{
	int w, h, bpp;

	if(c)
		reset();

	mCvCapture = c;

	if(c)
	{
		
		cvSetCaptureProperty(mCvCapture, CV_CAP_PROP_POS_FRAMES, mCurrentFrameNumber);
		IplImage *im = cvQueryFrame(mCvCapture);
		w = im->width;
		h = im->height;
		bpp = im->nChannels;

		lockImages();
		mCurrImage = new QImage(w, h, QImage::Format_ARGB32);
		convertRGB2ARGB(im, mCurrImage);
		releaseImages();
		mInputType = AviFile;

		mFirstFrameNumber = 0;
		mLastFrameNumber = cvGetCaptureProperty(mCvCapture, CV_CAP_PROP_FRAME_COUNT) - 1;
		mInitialized = true;
		emit imageChanged();
	}
}
Пример #3
0
void OptFlowEMD::initImages(CvSize size){
    releaseImages();
    _oldLPFx0 = cvCreateImage(size, IPL_DEPTH_32F, 1);
    _oldLPFx1 = cvCreateImage(size, IPL_DEPTH_32F, 1);
    _oldLPFy0 = cvCreateImage(size, IPL_DEPTH_32F, 1);
    _oldLPFy1 = cvCreateImage(size, IPL_DEPTH_32F, 1);
}
Пример #4
0
void StarDetector::setImageSize(CvSize size)
{
  releaseImages();
  
  m_W = size.width;
  m_H = size.height;

  // SIMD optimized code requires integral images to have fixed width.
  int sumwidth = std::max(OPTIMIZED_WIDTH, m_W+1);
  m_upright = cvCreateImage(cvSize(sumwidth,m_H+1), IPL_DEPTH_32S, 1);
  m_tilted  = cvCreateImage(cvSize(sumwidth,m_H+1), IPL_DEPTH_32S, 1);
  m_flat    = cvCreateImage(cvSize(sumwidth,m_H+1), IPL_DEPTH_32S, 1);
  // Real width is m_W+1, rest is just padding
  m_upright->width = m_tilted->width = m_flat->width = m_W+1;

  m_projected = cvCreateImage(size, IPL_DEPTH_32F, 1);
  m_scales = cvCreateImage(size, IPL_DEPTH_8U, 1);
  
  cvSet(m_scales, cvScalar(1));
  cvZero(m_projected);

  m_nonmax.thresholdFunction().setProjectedImage(m_projected);
  m_nonmax.thresholdFunction().setScaleImage(m_scales);
}
Пример #5
0
StarDetector::~StarDetector()
{
  releaseImages();
  delete[] m_filter_sizes;
  delete[] m_filter_params;
}
Пример #6
0
bool OptFlowEMD::close(){
    releaseImages();
    return true;
}
Пример #7
0
OptFlowEMD::~OptFlowEMD(){
    releaseImages();
}