Пример #1
0
JpegWrap JpegReceiver::getNextFrame()
{
	lockImage();
	JpegWrap pic(currentPic.pic.get(), currentPic.length);
	releaseImage();
	return pic;
}
Пример #2
0
//sizeがある程度より小さいときとか
//0スタートじゃないと使いづらいかも
void createPSF( Complex dst[MAX_PSF_SIZE][FFT_SIZE][FFT_SIZE],
		const IMG* basePsf, int minSize, int maxSize)
{
  double psf[FFT_SIZE][FFT_SIZE];
  int h ,w;
  for(int size = minSize; size <= maxSize; ++size)
    {
      if( size <= 0 ) continue;
      printf("createPSF size = %d\n",size);
      IMG* img = createImage(size, size);
      resizeImage( basePsf, img);
      
      for(h=0;h<FFT_SIZE;++h){
	for(w=0;w<FFT_SIZE;++w){
	  psf[h][w] = 0.0;
	}
      }
      
      for(h=0;h<size;++h){
	for(w=0;w<size;++w){
	  psf[h][w] = (double)IMG_ELEM(img, size-h, size-w);
	}
      }
      
      releaseImage(&img);

      fourier(dst[size], psf);

    }

  printf("createPSF done\n");

  return;
}
Пример #3
0
void GLImageDrawable::setLiveStatus(bool flag)
{
	GLVideoDrawable::setLiveStatus(flag);
	if(flag)
	{
		if(m_releasedImage)
			reloadImage();

		if(m_frame)
			m_activeMemory += m_frame->pointerLength();;

		#ifdef DEBUG_MEMORY_USAGE
		qDebug() << "GLImageDrawable::setLiveStatus("<<flag<<"): "<<(QObject*)this<<" Active memory usage up to:"<<(m_activeMemory/1024/1024)<<"MB";
		#endif

		if(m_needUpdate)
		{
			m_needUpdate = false;
 			//updateTexture();
 			//updateGL();
		}
	}
	else
	{
		if(m_frame)
			m_activeMemory -= m_frame->pointerLength();;
		#ifdef DEBUG_MEMORY_USAGE
		qDebug() << "GLImageDrawable::setLiveStatus("<<flag<<"): "<<(QObject*)this<<" Active memory usage down to:"<<(m_activeMemory/1024/1024)<<"MB";
		#endif
		if(canReleaseImage() &&
		   m_allocatedMemory > IMAGE_ALLOCATION_CAP_MB*1024*1024)
			releaseImage();
	}
}
Пример #4
0
Picture JpegReceiver::nextPic()
{
	createNextPicture();
	lockImage();
	Picture nextPicture = curPic.clone();
	releaseImage();
	return nextPicture;
}
Пример #5
0
void CGridDlg::setImage(const PixRect *image) {
  releaseImage();
  if(image) {
    m_image = image->clone(true);
    if(isVisible()) {
      PostMessage(ID_MSG_NEWIMAGE);
    }
  }
}
Пример #6
0
CDataset::~CDataset(){
    if(imgFlag){
        releaseImage();
        //std::cout << "image released!" << std::endl;
    }

    if(featureFlag){
        releaseFeatures();
        //std::cout << "feature released!" << std::endl;
    }
}
Пример #7
0
void JpegReceiver::createNextPicture()
{
	JpegWrap frame = getNextFrame();
	if (frame.length == 0) return;
	DWORD tm = GetTickCount();
	CxImage* image = new CxImage(frame.pic.get(), frame.length, CXIMAGE_FORMAT_JPG);
	Picture pic = Picture::createFromCxImage(image);
	delete image;
//	Capture_Log::getInstance()->log_write("Time is %d\n", GetTickCount() - tm);
	lockImage();
	curPic = pic;
	releaseImage();
}
Пример #8
0
void JpegReceiver::nextStep()
{
	while (bufferLength < headerPrediction)
	{
		receivePacket();
	}
	std::string firstPart((char*)(buffer.get() + bufferStartPoint), headerPrediction);
	std::string lengthBorderBig = "Content-Length: ";
	std::string lengthBorderSmall = "Content-length: ";
	int placeBig = firstPart.find(lengthBorderBig);
	int placeSmall = firstPart.find(lengthBorderSmall);
	int startLen = std::max(placeBig, placeSmall) + lengthBorderBig.length();
	int endLen = startLen;
	while (firstPart.at(endLen) >= '0' && firstPart.at(endLen) <= '9')
	{
		endLen++;
	}
	int jpegLength = atoi(firstPart.substr(startLen, endLen - startLen).c_str());
	while (firstPart.at(endLen) == ' ' || firstPart.at(endLen) == '\n' || firstPart.at(endLen) == '\r')
	{
		++endLen;
	}
	if (placeSmall != -1) endLen += 28;
	while (bufferLength - endLen < jpegLength)
	{
		receivePacket();
	}
	lockImage();
	currentPic = JpegWrap(buffer.get() + (bufferStartPoint + endLen) * sizeof(unsigned char), jpegLength);
//	createNextBmp();
	releaseImage();
//	createNextPicture();

	//jpegWrap.pic = sh_ptr_uch(new unsigned char[jpegWrap.length]);
	//memcpy(jpegWrap.pic.get(), buffer.get() + (bufferStartPoint + endLen) * sizeof(unsigned char), jpegWrap.length * sizeof(unsigned char));
/*	for (int i = 0; i < jpegLength; ++i)
	{
		data.get()[i] = buffer.get()[bufferStartPoint + endLen + i];
	}*/
	shiftBuffer(bufferStartPoint + endLen + jpegLength);
}
Пример #9
0
CGridDlg::~CGridDlg() {
  releaseImage();
}
void OpenCVDisplay::initializeImage( int width, int height ) throw(DisplayException) {
	releaseImage();
	image = cvCreateImage(cvSize(width, height), IPL_DEPTH_8U, 3);
	if(!image)
		throw DisplayException("Could not create an OpenCV image!");
}
OpenCVDisplay::~OpenCVDisplay() {
	releaseImage();
}
Пример #12
0
v8Image::~v8Image() {
    releaseImage();
}