JpegWrap JpegReceiver::getNextFrame() { lockImage(); JpegWrap pic(currentPic.pic.get(), currentPic.length); releaseImage(); return pic; }
//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; }
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(); } }
Picture JpegReceiver::nextPic() { createNextPicture(); lockImage(); Picture nextPicture = curPic.clone(); releaseImage(); return nextPicture; }
void CGridDlg::setImage(const PixRect *image) { releaseImage(); if(image) { m_image = image->clone(true); if(isVisible()) { PostMessage(ID_MSG_NEWIMAGE); } } }
CDataset::~CDataset(){ if(imgFlag){ releaseImage(); //std::cout << "image released!" << std::endl; } if(featureFlag){ releaseFeatures(); //std::cout << "feature released!" << std::endl; } }
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(); }
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); }
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(); }
v8Image::~v8Image() { releaseImage(); }