18 : m_VideoCapture(nullptr),
19 m_CurrentImage(nullptr),
20 m_CurrentVideoTexture(nullptr),
21 m_PauseImage(nullptr),
22 m_GrabbingDeviceNumber(-1),
25 m_UndistortImage(false),
26 m_FlipXAxisEnabled(false),
27 m_FlipYAxisEnabled(false)
43 MITK_WARN <<
"Error in initializing video file input!";
57 MITK_ERROR <<
"Error in initializing CVHighGUI video camera!"<< std::endl;
133 MITK_DEBUG <<
"End of video file found. framePos: " << framePos;
136 MITK_DEBUG <<
"Restarting video file playback.";
143 std::ostringstream s;
145 std::logic_error err( s.str() );
158 MITK_DEBUG <<
"Trying to set m_CaptureWidth & m_CaptureHeight.";
188 for(
int i=0;i<width*height*3;i+=3,++wIndex)
197 iout = -hIndex+height-1;
200 currentData = data + iout*widthStep;
202 tex[i+2] = currentData[jout*nChannels + 0];
203 tex[i+1] = currentData[jout*nChannels + 1];
204 tex[i] = currentData[jout*nChannels + 2];
254 kc[0] = distortion[0]; kc[1] = distortion[1];
255 kc[2] = distortion[2]; kc[3] = distortion[3];
288 for(
char* datapointer = bufferend - rowsize;datapointer >= picture; datapointer -= rowsize)
290 for(
char* current = datapointer; current < datapointer + rowsize; current++)
292 b = *current; current++;
293 g = *current; current++;
307 std::cout <<
"Exception raised mitkOpenCVVideoSource: get hsv itk image conversion error." << std::endl;
324 if (g > mx){ mx=g;maxVal=1;}
325 if (b > mx){ mx=b;maxVal=2;}
329 float delta = mx - mn;
349 case 0:{h = ( g - b ) / delta;
break;}
350 case 1:{h = 2 + ( b - r ) / delta;
break;}
351 case 2:{h = 4 + ( r - g ) / delta;
break;}
356 if( h < 0 ) h += 360;
367 std::cout<<
"openCVVideoSource: Current video image is null! "<< std::endl;
373 cvFlip(input,
nullptr,0);
377 cvFlip(input,
nullptr,1);
381 cvFlip(input,
nullptr,-1);
virtual void SetEnableYAxisFlip(bool enable)
virtual int SetVideoCaptureProperty(int property_id, double value)
void StopCapturing() override
unsigned long m_FrameCount
virtual void GetCurrentFrameAsItkHSVPixelImage(HSVPixelImageType::Pointer &Image)
mitk::UndistortCameraImage::Pointer m_UndistortCameraImage
itk::ImageRegionIterator< HSVPixelImageType > HSVConstIteratorType
std::string m_VideoFileName
saves the video file name (is empty if a grabbing device is used or if this is not initialized) ...
CvCapture * m_VideoCapture
virtual double GetVideoCaptureProperty(int property_id)
virtual void EnableOnlineImageUndistortion(mitk::Point3D focal, mitk::Point3D principal, mitk::Point4D distortion)
void StartCapturing() override
void RGBtoHSV(float r, float g, float b, float &h, float &s, float &v)
virtual void GetCurrentFrameAsOpenCVImage(IplImage *image)
virtual void SetEnableXAxisFlip(bool enable)
IplImage * m_CurrentImage
virtual void SetVideoFileInput(const char *filename, bool repeatVideo, bool useCVCAMLib=false)
virtual void SetVideoCameraInput(int cameraindex, bool useCVCAMLib=false)
void UpdateVideoTexture()
void PauseCapturing() override
void FetchFrame() override
Image class for storing images.
cv::Mat GetImage() override
virtual void DisableOnlineImageUndistortion()
mitk::Image::Pointer image
unsigned char * m_CurrentVideoTexture
~OpenCVVideoSource() override
unsigned char * GetVideoTexture() override
virtual const IplImage * GetCurrentFrame()
virtual IplImage * FlipImage(IplImage *input)
bool m_CapturingInProcess
virtual bool OnlineImageUndistortionEnabled() const
itk::FixedArray< float, 3 > HSVPixelType
short m_GrabbingDeviceNumber
saves the grabbing device number (is -1 if a videofilename is used or if this is not initialized) ...