void SharedImageSequence::GetSharedImageSequenceManually(libCameraSensors::AbstractRangeImagingSensor* RangeCam, libCameraSensors::AbstractColorCamera* ColorCam, const CvSize& SharedImageSize) { cvNamedWindow(m_CoordWinName.c_str()); cvNamedWindow(m_ColorWinName.c_str()); char c=-1; SharedImage SImg; SImg.GetImagesFromSensors(RangeCam, ColorCam, SharedImageDefaultSize); SImg.DisplayCoord(m_CoordWinName); SImg.DisplayShared(m_ColorWinName); int cnt=0; while(cvGetWindowHandle(m_ColorWinName.c_str()) && cvGetWindowHandle(m_CoordWinName.c_str())) { std::cout << "SharedImageSequence::GetSharedImageSequence: Press 'n' to take a training image, 's' to save the image, or 'q' to quit.\n"; c = cvWaitKey(); std::cout << "SharedImageSequence::GetSharedImageSequence: " << c << ".\n"; if(c=='q' || c=='Q') { break; } else if (c=='n' || c=='N') { #ifndef __USE_SHAREDIMAGE_JBK__ SImg.GetImagesFromSensors(RangeCam, ColorCam, SharedImageDefaultSize); #endif #ifdef __USE_SHAREDIMAGE_JBK__ SImg.GetImagesFromSensors(RangeCam, ColorCam); #endif SImg.DisplayCoord(m_CoordWinName); SImg.DisplayShared(m_ColorWinName); } else if (c=='s' || c=='S') { push_back(SImg); std::cout << "SharedImageSequence::GetSharedImageSequence: ... one image sucessfully acquired." << std::endl; cnt++; } } cvDestroyAllWindows(); }
void SharedImageSequence::GetSharedImageSequencePowerCube(libCameraSensors::AbstractRangeImagingSensor* RangeCam, libCameraSensors::AbstractColorCamera* ColorCam, const CvSize& SharedImageSize, int DegreeOffset) { #ifndef __USE_POWERCUBE__ std::cout << "Error: you have to enable the preprocessor symbol __USE_POWERCUBE__" << std::endl; #endif #ifdef __USE_POWERCUBE__ cvNamedWindow(m_CoordWinName.c_str()); cvNamedWindow(m_ColorWinName.c_str()); char c=-1; ipa_utils::PowerCube powercube; powercube.Init(); powercube.Open(); powercube.DoHoming(); // Rotate and capture unsigned int rotationIncrement = DegreeOffset; for(unsigned int degree = 0; degree < 360; degree += rotationIncrement) { if(!cvGetWindowHandle(m_CoordWinName.c_str()) || !cvGetWindowHandle(m_ColorWinName.c_str())) { break; } powercube.Rotate(rotationIncrement); SharedImage SImg;//(m_SharedImageSize);//, m_CameraSensorsIniDirectory); //SImg.Init(SharedImageSize); #ifndef __USE_SHAREDIMAGE_JBK__ SImg.GetImagesFromSensors(RangeCam, ColorCam, SharedImageDefaultSize); #endif #ifdef __USE_SHAREDIMAGE_JBK__ SImg.GetImagesFromSensors(RangeCam, ColorCam); #endif SImg.DisplayCoord(m_CoordWinName); SImg.DisplayShared(m_ColorWinName); push_back(SImg); c = cvWaitKey(100); if(c=='q' || c=='Q') { break; } std::cout << "SharedImageSequence::GetSharedImageSequence: ... one image sucessfully acquired." << std::endl; } cvDestroyAllWindows(); powercube.Close(); #endif // __USE_POWERCUBE__ }