diff --git a/modules/highgui/src/grfmt_jpeg.cpp b/modules/highgui/src/grfmt_jpeg.cpp index 5b4c9e83d4..20421ce255 100644 --- a/modules/highgui/src/grfmt_jpeg.cpp +++ b/modules/highgui/src/grfmt_jpeg.cpp @@ -382,12 +382,11 @@ bool JpegDecoder::readData( Mat& img ) bool result = false; int step = (int)img.step; bool color = img.channels() > 1; - JpegState* state = (JpegState*)m_state; - if( state && m_width && m_height ) + if( m_state && m_width && m_height ) { - jpeg_decompress_struct* cinfo = &state->cinfo; - JpegErrorMgr* jerr = &state->jerr; + jpeg_decompress_struct* cinfo = &((JpegState*)m_state)->cinfo; + JpegErrorMgr* jerr = &((JpegState*)m_state)->jerr; JSAMPARRAY buffer = 0; if( setjmp( jerr->setjmp_buffer ) == 0 ) diff --git a/modules/video/src/camshift.cpp b/modules/video/src/camshift.cpp index 3d99813fa9..eadf166c42 100644 --- a/modules/video/src/camshift.cpp +++ b/modules/video/src/camshift.cpp @@ -96,8 +96,8 @@ cvMeanShift( const void* imgProb, CvRect windowIn, } cur_rect.width = MAX(cur_rect.width, 1); cur_rect.height = MAX(cur_rect.height, 1); - - cvGetSubRect( mat, &cur_win, cur_rect ); + + cvGetSubRect( mat, &cur_win, cur_rect ); cvMoments( &cur_win, &moments ); /* Calculating center of mass */ @@ -240,7 +240,7 @@ cvCamShift( const void* imgProb, CvRect windowIn, if( length < width ) { double t; - + CV_SWAP( length, width, t ); CV_SWAP( cs, sn, t ); theta = CV_PI*0.5 - theta; @@ -275,7 +275,7 @@ cvCamShift( const void* imgProb, CvRect windowIn, if( _comp ) *_comp = comp; - + if( box ) { box->size.height = (float)length; @@ -300,6 +300,10 @@ cv::RotatedRect cv::CamShift( InputArray _probImage, Rect& window, { CvConnectedComp comp; CvBox2D box; + + box.center.x = box.center.y = 0; box.angle = 0; box.size.width = box.size.height = 0; + comp.rect.x = comp.rect.y = comp.rect.width = comp.rect.height = 0; + Mat probImage = _probImage.getMat(); CvMat c_probImage = probImage; cvCamShift(&c_probImage, window, (CvTermCriteria)criteria, &comp, &box);