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(); } } }
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(); } }
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); }
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); }
StarDetector::~StarDetector() { releaseImages(); delete[] m_filter_sizes; delete[] m_filter_params; }
bool OptFlowEMD::close(){ releaseImages(); return true; }
OptFlowEMD::~OptFlowEMD(){ releaseImages(); }