void ImageRetargetingApp::drawSeamCarvingWindow() { gl::clear( Color( 0.f, 0.f, 0.f ) ); switch(seamCarvingState) { case SeamCarvingState::ShowImage: if( seamCarvedTexture ) { gl::draw(seamCarvedTexture); } break; case SeamCarvingState::ShowGradient: if( gradientTexture ) { gl::draw(gradientTexture); } break; case SeamCarvingState::SeamCarving: if(seamCarvedTexture){ int dw = seamCarver->newWidth - seamCarvedImage.getWidth(); int dh = seamCarver->newHeight - seamCarvedImage.getHeight(); if (dw<0 && dh<0){ seamCarvingWindow->setSize(seamCarvedTexture.getWidth()-1, seamCarvedTexture.getHeight()); seamCarvedImage = seamCarver->deleteVerticalSeam(seamCarvedImage); } else if (dw<0){ seamCarvingWindow->setSize(seamCarvedTexture.getWidth()-1, seamCarvedTexture.getHeight()); seamCarvedImage = seamCarver->deleteVerticalSeam(seamCarvedImage); } else if (dh<0){ seamCarvingWindow->setSize(seamCarvedTexture.getWidth(), seamCarvedTexture.getHeight()-1); seamCarvedImage = seamCarver->deleteHorizontalSeam(seamCarvedImage); } //TODO:: Add Seam else if (dw>=0 && dh>=0) { seamCarvingState = SeamCarvingState::ShowImage; seamCarver->stopCarveTimer(); } seamCarvedTexture = gl::Texture(seamCarvedImage); gl::draw(seamCarvedTexture); } break; case SeamCarvingState::Undefined: break; } seamCarvingParams->draw(); }
void ImageRetargetingApp::resizeMeshRect() { meshWarpRetargetter->startTimer(); meshWarpRetargetter->resizeMeshRect(meshWarpRetargetter->resizeWidth , meshWarpRetargetter->resizeHeight); meshWarpRetargetter->stopTimer(); meshWarpingState = MeshWarpingState::ShowMeshWarping; meshWarpingWindow->setSize(meshWarpRetargetter->resizeWidth , meshWarpRetargetter->resizeHeight); }
void ImageRetargetingApp::meshWarperResetButtonClick() { meshWarpingState = MeshWarpingState::ShowImage; saliencyImage = saliencySegmentor->getSaliencyMap(originalImage.clone(), SaliencySegmentor::SaliencyMethod::Sobel); saliencyImage = saliencySegmentor->getSegmentedSalientImage(saliencyImage); saliencyTexture = gl::Texture(saliencyImage); meshWarpRetargetter->initMesh(originalImage.getWidth(), originalImage.getHeight(), saliencySegmentor); meshWarpingWindow->setSize(originalImage.getWidth(), originalImage.getHeight()); }
bool initialize( const WindowRef& window ) override { // Make sure our window is positioned and sized correctly. window->setBorderless( true ); window->setPos( mRift->getNativeWindowPos() ); window->setSize( mRift->getNativeWindowResolution() ); // Create or resize the frame buffer. mRift->initializeFrameBuffer(); initializeDistortion(); return true; }
void ImageRetargetingApp::linearResizeButtonClick() { linearScaleRec->set(0,0,linearScaleWidth,linearScaleHeight); linearScaleWindow->setSize(linearScaleWidth,linearScaleHeight); }
void ImageRetargetingApp::linearResizeResetButtonClick() { linearScaleRec->set(0,0,originalImage.getWidth(),originalImage.getHeight()); linearScaleWindow->setSize(originalImage.getWidth(),originalImage.getHeight()); }
void ImageRetargetingApp::resizeMeshEllipse() { meshWarpRetargetter->resizeMeshEllipse(meshWarpRetargetter->resizeWidth , meshWarpRetargetter->resizeHeight); meshWarpingState = MeshWarpingState::ShowMeshWarping; meshWarpingWindow->setSize(meshWarpRetargetter->resizeWidth , meshWarpRetargetter->resizeHeight); }
void ImageRetargetingApp::resetWindowOriginalSize(WindowRef window) { window->setSize(originalTexture.getWidth(), originalTexture.getHeight()); }