ImageSourceDir::ImageSourceDir(const char* directory, bool _keepFrames)
{
	curImage = NULL;

	m_keepFrames = _keepFrames;

	strncpy (m_DirSpec, directory, strlen(directory)+1);

	countFiles();
	setCurrentImage(0);
}
void ImageSourceDir::getIplImage(const std::string& fileName)
{

	// assemble image filename
	char tmpStr[MAX_PATH+1];
	sprintf (tmpStr, "%s/%s", m_DirSpec, fileName.c_str());

	// find corresponding idx
	int idx = -1;
	for (int i = 0; i < m_numFiles; i++) {
		if( fileName.compare(m_fileNames[i]) == 0 ) {
			idx = i;
			break;
		}
	}
	if (idx >= m_numFiles || idx < 0)
	{
		curImage = NULL;
		return;
	}
	// we set IDX to current Image Position
	setCurrentImage(idx);

	// check if image was already loaded, then return it, 
	// else load it and store it into a vector of images
	string fn(tmpStr);
	if(m_keepFrames)
	{
		if(m_loadedImagesMap[fn])
		{
			cvReleaseImage(&(m_loadedImagesMap[fn]));
		}

		// reload
		m_loadedImagesMap[fn] = cvLoadImage(tmpStr, -1);

		// assign
		curImage = m_loadedImagesMap[fn];
	}
	else
	{
		if(curImage)
			cvReleaseImage (&curImage);
		curImage = cvLoadImage(tmpStr, -1);
	}

	// increase current File Counter
	m_curFile++;
}
// get IPL Image depending on IDx
void ImageSourceDir::getIplImage(int idx)
{
	//printf("GetIPL!\n");
	// Index check
	if (idx >= m_numFiles || idx < 0)
	{
		curImage = NULL;
		return;
	}

	setCurrentImage(idx);

	// assemble image filename
	char tmpStr[MAX_PATH+1];
	sprintf (tmpStr, "%s/%s", m_DirSpec, m_fileNames[m_curFile].c_str());

	// check if image was already loaded, then return it, 
	// else load it and store it into a vector of images
	string fn(tmpStr);
	if(m_keepFrames)
	{
		if(m_loadedImagesMap[fn])
		{
			cvReleaseImage(&(m_loadedImagesMap[fn]));
		}

		// reload
		m_loadedImagesMap[fn] = cvLoadImage(tmpStr, -1);

		// assign
		curImage = m_loadedImagesMap[fn];
	}
	else
	{
		if(curImage)
			cvReleaseImage (&curImage);
		curImage = cvLoadImage(tmpStr, -1);
	}

	// increase current File Counter
	m_curFile++;
}
Example #4
0
void qwDecoratedCanvas::hideEvent(QHideEvent *e)
{
    setCurrentImage(QSharedPointer<CImgContext>());
    QWidget::hideEvent(e);
}
Example #5
0
void qwDecoratedCanvas::setCurrentImageSlot(QListWidgetItem* imc)
{
     setCurrentImage(Globals::findImgContextByWidget(imc));
}
Example #6
0
void ToolbarButton::buttonStateChanged()
{
    setCurrentImage (getImageToUse());
}
void ImageSourceDir::setRandomImage()
{
	setCurrentImage( (int)(m_numFiles * rand()/( RAND_MAX+1.0f )) );
}