Merged the trunk r8589:8653 - all changes related to build warnings
This commit is contained in:
		| @@ -48,7 +48,7 @@ | ||||
|     Stan Birchfield and Carlo Tomasi | ||||
|     International Journal of Computer Vision, | ||||
|     35(3): 269-293, December 1999. | ||||
|      | ||||
|  | ||||
|     This implementation uses different cost function that results in | ||||
|     O(pixPerRow*maxDisparity) complexity of dynamic programming stage versus | ||||
|     O(pixPerRow*log(pixPerRow)*maxDisparity) in the above paper. | ||||
| @@ -68,7 +68,7 @@ | ||||
| typedef struct _CvDPCell | ||||
| { | ||||
|     uchar  step; //local-optimal step | ||||
|     int    sum;  //current sum   | ||||
|     int    sum;  //current sum | ||||
| }_CvDPCell; | ||||
|  | ||||
| typedef struct _CvRightImData | ||||
| @@ -79,17 +79,17 @@ typedef struct _CvRightImData | ||||
| #define CV_IMAX3(a,b,c) ((temp3 = (a) >= (b) ? (a) : (b)),(temp3 >= (c) ? temp3 : (c))) | ||||
| #define CV_IMIN3(a,b,c) ((temp3 = (a) <= (b) ? (a) : (b)),(temp3 <= (c) ? temp3 : (c))) | ||||
|  | ||||
| void icvFindStereoCorrespondenceByBirchfieldDP( uchar* src1, uchar* src2, | ||||
| static void icvFindStereoCorrespondenceByBirchfieldDP( uchar* src1, uchar* src2, | ||||
|                                                 uchar* disparities, | ||||
|                                                 CvSize size, int widthStep, | ||||
|                                                 int    maxDisparity,  | ||||
|                                                 float  _param1, float _param2,  | ||||
|                                                 int    maxDisparity, | ||||
|                                                 float  _param1, float _param2, | ||||
|                                                 float  _param3, float _param4, | ||||
|                                                 float  _param5 ) | ||||
| { | ||||
|     int     x, y, i, j, temp3; | ||||
|     int     d, s; | ||||
|     int     dispH =  maxDisparity + 3;  | ||||
|     int     dispH =  maxDisparity + 3; | ||||
|     uchar  *dispdata; | ||||
|     int     imgW = size.width; | ||||
|     int     imgH = size.height; | ||||
| @@ -103,22 +103,22 @@ void icvFindStereoCorrespondenceByBirchfieldDP( uchar* src1, uchar* src2, | ||||
|     int param5 = cvRound(_param5); | ||||
|  | ||||
|     #define CELL(d,x)   cells[(d)+(x)*dispH] | ||||
|      | ||||
|  | ||||
|     uchar*              dsi = (uchar*)cvAlloc(sizeof(uchar)*imgW*dispH); | ||||
|     uchar*              edges = (uchar*)cvAlloc(sizeof(uchar)*imgW*imgH); | ||||
|     _CvDPCell*          cells = (_CvDPCell*)cvAlloc(sizeof(_CvDPCell)*imgW*MAX(dispH,(imgH+1)/2)); | ||||
|     _CvRightImData*     rData = (_CvRightImData*)cvAlloc(sizeof(_CvRightImData)*imgW); | ||||
|     int*                reliabilities = (int*)cells; | ||||
|      | ||||
|     for( y = 0; y < imgH; y++ )  | ||||
|     {  | ||||
|  | ||||
|     for( y = 0; y < imgH; y++ ) | ||||
|     { | ||||
|         uchar* srcdata1 = src1 + widthStep * y; | ||||
|         uchar* srcdata2 = src2 + widthStep * y;         | ||||
|         uchar* srcdata2 = src2 + widthStep * y; | ||||
|  | ||||
|         //init rData | ||||
|         prevval = prev = srcdata2[0]; | ||||
|         for( j = 1; j < imgW; j++ ) | ||||
|         {              | ||||
|         { | ||||
|             curr = srcdata2[j]; | ||||
|             val = (uchar)((curr + prev)>>1); | ||||
|             rData[j-1].max_val = (uchar)CV_IMAX3( val, prevval, prev ); | ||||
| @@ -130,12 +130,12 @@ void icvFindStereoCorrespondenceByBirchfieldDP( uchar* src1, uchar* src2, | ||||
|  | ||||
|         // fill dissimularity space image | ||||
|         for( i = 1; i <= maxDisparity + 1; i++ ) | ||||
|         {                | ||||
|         { | ||||
|             dsi += imgW; | ||||
|             rData--; | ||||
|             for( j = i - 1; j < imgW - 1; j++ ) | ||||
|             {                 | ||||
|                 int t;  | ||||
|             { | ||||
|                 int t; | ||||
|                 if( (t = srcdata1[j] - rData[j+1].max_val) >= 0 ) | ||||
|                 { | ||||
|                     dsi[j] = (uchar)t; | ||||
| @@ -160,109 +160,109 @@ void icvFindStereoCorrespondenceByBirchfieldDP( uchar* src1, uchar* src2, | ||||
|         for( j = 3; j < imgW-4; j++ ) | ||||
|         { | ||||
|             edges[y*imgW+j] = 0; | ||||
|              | ||||
|             if( ( CV_IMAX3( srcdata1[j-3], srcdata1[j-2], srcdata1[j-1] ) -  | ||||
|  | ||||
|             if( ( CV_IMAX3( srcdata1[j-3], srcdata1[j-2], srcdata1[j-1] ) - | ||||
|                   CV_IMIN3( srcdata1[j-3], srcdata1[j-2], srcdata1[j-1] ) ) >= ICV_BIRCH_DIFF_LUM ) | ||||
|             { | ||||
|                 edges[y*imgW+j] |= 1; | ||||
|             } | ||||
|             if( ( CV_IMAX3( srcdata2[j+3], srcdata2[j+2], srcdata2[j+1] ) -  | ||||
|             if( ( CV_IMAX3( srcdata2[j+3], srcdata2[j+2], srcdata2[j+1] ) - | ||||
|                   CV_IMIN3( srcdata2[j+3], srcdata2[j+2], srcdata2[j+1] ) ) >= ICV_BIRCH_DIFF_LUM ) | ||||
|             { | ||||
|                 edges[y*imgW+j] |= 2; | ||||
|             }             | ||||
|         }         | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         //find correspondence using dynamical programming | ||||
|         //init DP table | ||||
|         for( x = 0; x < imgW; x++ )  | ||||
|         for( x = 0; x < imgW; x++ ) | ||||
|         { | ||||
|             CELL(0,x).sum = CELL(dispH-1,x).sum = ICV_MAX_DP_SUM_VAL; | ||||
|             CELL(0,x).step = CELL(dispH-1,x).step = ICV_DP_STEP_LEFT; | ||||
|         } | ||||
|         for( d = 2; d < dispH; d++ )  | ||||
|         for( d = 2; d < dispH; d++ ) | ||||
|         { | ||||
|             CELL(d,d-2).sum = ICV_MAX_DP_SUM_VAL; | ||||
|             CELL(d,d-2).step = ICV_DP_STEP_UP; | ||||
|         }     | ||||
|         } | ||||
|         CELL(1,0).sum  = 0; | ||||
|         CELL(1,0).step = ICV_DP_STEP_LEFT; | ||||
|  | ||||
|         for( x = 1; x < imgW; x++ ) | ||||
|         {         | ||||
|             int d = MIN( x + 1, maxDisparity + 1); | ||||
|         { | ||||
|             int dp = MIN( x + 1, maxDisparity + 1); | ||||
|             uchar* _edges = edges + y*imgW + x; | ||||
|             int e0 = _edges[0] & 1; | ||||
|             _CvDPCell* _cell = cells + x*dispH; | ||||
|  | ||||
|             do | ||||
|             { | ||||
|                 int s = dsi[d*imgW+x]; | ||||
|                 int _s = dsi[dp*imgW+x]; | ||||
|                 int sum[3]; | ||||
|  | ||||
|                 //check left step | ||||
|                 sum[0] = _cell[d-dispH].sum - param2;                 | ||||
|                 sum[0] = _cell[dp-dispH].sum - param2; | ||||
|  | ||||
|                 //check up step | ||||
|                 if( _cell[d+1].step != ICV_DP_STEP_DIAG && e0 ) | ||||
|                 if( _cell[dp+1].step != ICV_DP_STEP_DIAG && e0 ) | ||||
|                 { | ||||
|                     sum[1] = _cell[d+1].sum + param1; | ||||
|                     sum[1] = _cell[dp+1].sum + param1; | ||||
|  | ||||
|                     if( _cell[d-1-dispH].step != ICV_DP_STEP_UP && (_edges[1-d] & 2) )  | ||||
|                     if( _cell[dp-1-dispH].step != ICV_DP_STEP_UP && (_edges[1-dp] & 2) ) | ||||
|                     { | ||||
|                         int t; | ||||
|                          | ||||
|                         sum[2] = _cell[d-1-dispH].sum + param1; | ||||
|  | ||||
|                         sum[2] = _cell[dp-1-dispH].sum + param1; | ||||
|  | ||||
|                         t = sum[1] < sum[0]; | ||||
|  | ||||
|                         //choose local-optimal pass | ||||
|                         if( sum[t] <= sum[2] ) | ||||
|                         { | ||||
|                             _cell[d].step = (uchar)t; | ||||
|                             _cell[d].sum = sum[t] + s; | ||||
|                             _cell[dp].step = (uchar)t; | ||||
|                             _cell[dp].sum = sum[t] + _s; | ||||
|                         } | ||||
|                         else | ||||
|                         {                 | ||||
|                             _cell[d].step = ICV_DP_STEP_DIAG; | ||||
|                             _cell[d].sum = sum[2] + s; | ||||
|                         { | ||||
|                             _cell[dp].step = ICV_DP_STEP_DIAG; | ||||
|                             _cell[dp].sum = sum[2] + _s; | ||||
|                         } | ||||
|                     } | ||||
|                     else | ||||
|                     { | ||||
|                         if( sum[0] <= sum[1] ) | ||||
|                         { | ||||
|                             _cell[d].step = ICV_DP_STEP_LEFT; | ||||
|                             _cell[d].sum = sum[0] + s; | ||||
|                             _cell[dp].step = ICV_DP_STEP_LEFT; | ||||
|                             _cell[dp].sum = sum[0] + _s; | ||||
|                         } | ||||
|                         else | ||||
|                         { | ||||
|                             _cell[d].step = ICV_DP_STEP_UP; | ||||
|                             _cell[d].sum = sum[1] + s; | ||||
|                             _cell[dp].step = ICV_DP_STEP_UP; | ||||
|                             _cell[dp].sum = sum[1] + _s; | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|                 else if( _cell[d-1-dispH].step != ICV_DP_STEP_UP && (_edges[1-d] & 2) )  | ||||
|                 else if( _cell[dp-1-dispH].step != ICV_DP_STEP_UP && (_edges[1-dp] & 2) ) | ||||
|                 { | ||||
|                     sum[2] = _cell[d-1-dispH].sum + param1; | ||||
|                     sum[2] = _cell[dp-1-dispH].sum + param1; | ||||
|                     if( sum[0] <= sum[2] ) | ||||
|                     { | ||||
|                         _cell[d].step = ICV_DP_STEP_LEFT; | ||||
|                         _cell[d].sum = sum[0] + s; | ||||
|                         _cell[dp].step = ICV_DP_STEP_LEFT; | ||||
|                         _cell[dp].sum = sum[0] + _s; | ||||
|                     } | ||||
|                     else | ||||
|                     { | ||||
|                         _cell[d].step = ICV_DP_STEP_DIAG; | ||||
|                         _cell[d].sum = sum[2] + s; | ||||
|                         _cell[dp].step = ICV_DP_STEP_DIAG; | ||||
|                         _cell[dp].sum = sum[2] + _s; | ||||
|                     } | ||||
|                 } | ||||
|                 else | ||||
|                 { | ||||
|                     _cell[d].step = ICV_DP_STEP_LEFT; | ||||
|                     _cell[d].sum = sum[0] + s; | ||||
|                     _cell[dp].step = ICV_DP_STEP_LEFT; | ||||
|                     _cell[dp].sum = sum[0] + _s; | ||||
|                 } | ||||
|             } | ||||
|             while( --d ); | ||||
|             while( --dp ); | ||||
|         }// for x | ||||
|  | ||||
|         //extract optimal way and fill disparity image | ||||
| @@ -278,25 +278,25 @@ void icvFindStereoCorrespondenceByBirchfieldDP( uchar* src1, uchar* src2, | ||||
|                 min_val = CELL(i,imgW-1).sum; | ||||
|             } | ||||
|         } | ||||
|          | ||||
|  | ||||
|         //track optimal pass | ||||
|         for( x = imgW - 1; x > 0; x-- ) | ||||
|         {         | ||||
|         { | ||||
|             dispdata[x] = (uchar)(d - 1); | ||||
|             while( CELL(d,x).step == ICV_DP_STEP_UP ) d++; | ||||
|             if ( CELL(d,x).step == ICV_DP_STEP_DIAG ) | ||||
|             { | ||||
|                 s = x; | ||||
|                 while( CELL(d,x).step == ICV_DP_STEP_DIAG )  | ||||
|                 while( CELL(d,x).step == ICV_DP_STEP_DIAG ) | ||||
|                 { | ||||
|                     d--;  | ||||
|                     x--;                     | ||||
|                     d--; | ||||
|                     x--; | ||||
|                 } | ||||
|                 for( i = x; i < s; i++ ) | ||||
|                 { | ||||
|                     dispdata[i] = (uchar)(d-1); | ||||
|                 }             | ||||
|             }         | ||||
|                 } | ||||
|             } | ||||
|         }//for x | ||||
|     }// for y | ||||
|  | ||||
| @@ -319,9 +319,9 @@ void icvFindStereoCorrespondenceByBirchfieldDP( uchar* src1, uchar* src2, | ||||
|     { | ||||
|         for( y = 1; y < imgH - 1; y++ ) | ||||
|         { | ||||
|             if( ( CV_IMAX3( src1[(y-1)*widthStep+x], src1[y*widthStep+x],  | ||||
|                         src1[(y+1)*widthStep+x] ) -  | ||||
|                   CV_IMIN3( src1[(y-1)*widthStep+x], src1[y*widthStep+x],  | ||||
|             if( ( CV_IMAX3( src1[(y-1)*widthStep+x], src1[y*widthStep+x], | ||||
|                         src1[(y+1)*widthStep+x] ) - | ||||
|                   CV_IMIN3( src1[(y-1)*widthStep+x], src1[y*widthStep+x], | ||||
|                         src1[(y+1)*widthStep+x] ) ) >= ICV_BIRCH_DIFF_LUM ) | ||||
|             { | ||||
|                 edges[y*imgW+x] |= 4; | ||||
| @@ -332,14 +332,14 @@ void icvFindStereoCorrespondenceByBirchfieldDP( uchar* src1, uchar* src2, | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     //remove along any particular row, every gradient  | ||||
|     //remove along any particular row, every gradient | ||||
|     //for which two adjacent columns do not agree. | ||||
|     for( y = 0; y < imgH; y++ ) | ||||
|     { | ||||
|         prev = edges[y*imgW]; | ||||
|         for( x = 1; x < imgW - 1; x++ ) | ||||
|         { | ||||
|             curr = edges[y*imgW+x];             | ||||
|             curr = edges[y*imgW+x]; | ||||
|             if( (curr & 4) && | ||||
|                 ( !( prev & 4 ) || | ||||
|                   !( edges[y*imgW+x+1] & 4 ) ) ) | ||||
| @@ -360,41 +360,41 @@ void icvFindStereoCorrespondenceByBirchfieldDP( uchar* src1, uchar* src2, | ||||
|                 ; | ||||
|             s = y - i; | ||||
|             for( ; i < y; i++ ) | ||||
|             {                 | ||||
|             { | ||||
|                 reliabilities[i*imgW+x] = s; | ||||
|             }             | ||||
|             } | ||||
|         } | ||||
|     }    | ||||
|      | ||||
|     //Y - propagate reliable regions  | ||||
|     } | ||||
|  | ||||
|     //Y - propagate reliable regions | ||||
|     for( x = 0; x < imgW; x++ ) | ||||
|     {         | ||||
|     { | ||||
|         for( y = 0; y < imgH; y++ ) | ||||
|         {    | ||||
|         { | ||||
|             d = dest[y*widthStep+x]; | ||||
|             if( reliabilities[y*imgW+x] >= param4 && !(edges[y*imgW+x] & 4) && | ||||
|                 d > 0 )//highly || moderately | ||||
|             {    | ||||
|             { | ||||
|                 disparities[y*widthStep+x] = (uchar)d; | ||||
|                 //up propagation | ||||
|                 for( i = y - 1; i >= 0; i-- ) | ||||
|                 { | ||||
|                     if(  ( edges[i*imgW+x] & 4 ) || | ||||
|                          ( dest[i*widthStep+x] < d &&  | ||||
|                          ( dest[i*widthStep+x] < d && | ||||
|                            reliabilities[i*imgW+x] >= param3 ) || | ||||
|                          ( reliabilities[y*imgW+x] < param5 &&  | ||||
|                          ( reliabilities[y*imgW+x] < param5 && | ||||
|                            dest[i*widthStep+x] - 1 == d ) ) break; | ||||
|  | ||||
|                     disparities[i*widthStep+x] = (uchar)d;                     | ||||
|                 }                      | ||||
|                                  | ||||
|                     disparities[i*widthStep+x] = (uchar)d; | ||||
|                 } | ||||
|  | ||||
|                 //down propagation | ||||
|                 for( i = y + 1; i < imgH; i++ ) | ||||
|                 { | ||||
|                     if(  ( edges[i*imgW+x] & 4 ) || | ||||
|                          ( dest[i*widthStep+x] < d &&  | ||||
|                          ( dest[i*widthStep+x] < d && | ||||
|                            reliabilities[i*imgW+x] >= param3 ) || | ||||
|                          ( reliabilities[y*imgW+x] < param5 &&  | ||||
|                          ( reliabilities[y*imgW+x] < param5 && | ||||
|                            dest[i*widthStep+x] - 1 == d ) ) break; | ||||
|  | ||||
|                     disparities[i*widthStep+x] = (uchar)d; | ||||
| @@ -417,41 +417,41 @@ void icvFindStereoCorrespondenceByBirchfieldDP( uchar* src1, uchar* src2, | ||||
|             for( ; x < imgW && dest[y*widthStep+x] == dest[y*widthStep+x-1]; x++ ); | ||||
|             s = x - i; | ||||
|             for( ; i < x; i++ ) | ||||
|             {                 | ||||
|             { | ||||
|                 reliabilities[y*imgW+i] = s; | ||||
|             }             | ||||
|             } | ||||
|         } | ||||
|     }    | ||||
|      | ||||
|     //X - propagate reliable regions  | ||||
|     for( y = 0; y < imgH; y++ )     | ||||
|     {         | ||||
|     } | ||||
|  | ||||
|     //X - propagate reliable regions | ||||
|     for( y = 0; y < imgH; y++ ) | ||||
|     { | ||||
|         for( x = 0; x < imgW; x++ ) | ||||
|         {    | ||||
|         { | ||||
|             d = dest[y*widthStep+x]; | ||||
|             if( reliabilities[y*imgW+x] >= param4 && !(edges[y*imgW+x] & 1) && | ||||
|                 d > 0 )//highly || moderately | ||||
|             {    | ||||
|             { | ||||
|                 disparities[y*widthStep+x] = (uchar)d; | ||||
|                 //up propagation | ||||
|                 for( i = x - 1; i >= 0; i-- ) | ||||
|                 { | ||||
|                     if(  (edges[y*imgW+i] & 1) || | ||||
|                          ( dest[y*widthStep+i] < d &&  | ||||
|                          ( dest[y*widthStep+i] < d && | ||||
|                            reliabilities[y*imgW+i] >= param3 ) || | ||||
|                          ( reliabilities[y*imgW+x] < param5 &&  | ||||
|                          ( reliabilities[y*imgW+x] < param5 && | ||||
|                            dest[y*widthStep+i] - 1 == d ) ) break; | ||||
|  | ||||
|                     disparities[y*widthStep+i] = (uchar)d; | ||||
|                 }                      | ||||
|                                  | ||||
|                 } | ||||
|  | ||||
|                 //down propagation | ||||
|                 for( i = x + 1; i < imgW; i++ ) | ||||
|                 { | ||||
|                     if(  (edges[y*imgW+i] & 1) || | ||||
|                          ( dest[y*widthStep+i] < d &&  | ||||
|                          ( dest[y*widthStep+i] < d && | ||||
|                            reliabilities[y*imgW+i] >= param3 ) || | ||||
|                          ( reliabilities[y*imgW+x] < param5 &&  | ||||
|                          ( reliabilities[y*imgW+x] < param5 && | ||||
|                            dest[y*widthStep+i] - 1 == d ) ) break; | ||||
|  | ||||
|                     disparities[y*widthStep+i] = (uchar)d; | ||||
| @@ -466,10 +466,10 @@ void icvFindStereoCorrespondenceByBirchfieldDP( uchar* src1, uchar* src2, | ||||
|     } | ||||
|  | ||||
|     //release resources | ||||
|     cvFree( &dsi );     | ||||
|     cvFree( &edges );     | ||||
|     cvFree( &cells );         | ||||
|     cvFree( &rData );         | ||||
|     cvFree( &dsi ); | ||||
|     cvFree( &edges ); | ||||
|     cvFree( &cells ); | ||||
|     cvFree( &rData ); | ||||
| } | ||||
|  | ||||
|  | ||||
| @@ -483,7 +483,7 @@ void icvFindStereoCorrespondenceByBirchfieldDP( uchar* src1, uchar* src2, | ||||
| //      rightImage - right image of stereo-pair (format 8uC1). | ||||
| //      mode -mode of correspondance retrieval (now CV_RETR_DP_BIRCHFIELD only) | ||||
| //      dispImage - destination disparity image | ||||
| //      maxDisparity - maximal disparity  | ||||
| //      maxDisparity - maximal disparity | ||||
| //      param1, param2, param3, param4, param5 - parameters of algorithm | ||||
| //    Returns: | ||||
| //    Notes: | ||||
| @@ -491,43 +491,43 @@ void icvFindStereoCorrespondenceByBirchfieldDP( uchar* src1, uchar* src2, | ||||
| //      All images must have format 8uC1. | ||||
| //F*/ | ||||
| CV_IMPL void | ||||
| cvFindStereoCorrespondence(  | ||||
| cvFindStereoCorrespondence( | ||||
|                    const  CvArr* leftImage, const  CvArr* rightImage, | ||||
|                    int     mode, | ||||
|                    CvArr*  depthImage, | ||||
|                    int     maxDisparity,                                 | ||||
|                    double  param1, double  param2, double  param3,  | ||||
|                    int     maxDisparity, | ||||
|                    double  param1, double  param2, double  param3, | ||||
|                    double  param4, double  param5  ) | ||||
| {        | ||||
| { | ||||
|     CV_FUNCNAME( "cvFindStereoCorrespondence" ); | ||||
|  | ||||
|     __BEGIN__; | ||||
|  | ||||
|     CvMat  *src1, *src2;     | ||||
|     CvMat  *src1, *src2; | ||||
|     CvMat  *dst; | ||||
|     CvMat  src1_stub, src2_stub, dst_stub; | ||||
|     int    coi;     | ||||
|     int    coi; | ||||
|  | ||||
|     CV_CALL( src1 = cvGetMat( leftImage, &src1_stub, &coi )); | ||||
|     if( coi ) CV_ERROR( CV_BadCOI, "COI is not supported by the function" ); | ||||
|     CV_CALL( src2 = cvGetMat( rightImage, &src2_stub, &coi )); | ||||
|     if( coi ) CV_ERROR( CV_BadCOI, "COI is not supported by the function" );     | ||||
|     if( coi ) CV_ERROR( CV_BadCOI, "COI is not supported by the function" ); | ||||
|     CV_CALL( dst = cvGetMat( depthImage, &dst_stub, &coi )); | ||||
|     if( coi ) CV_ERROR( CV_BadCOI, "COI is not supported by the function" ); | ||||
|  | ||||
|     // check args  | ||||
|     if( CV_MAT_TYPE( src1->type ) != CV_8UC1 ||  | ||||
|         CV_MAT_TYPE( src2->type ) != CV_8UC1 ||         | ||||
|     // check args | ||||
|     if( CV_MAT_TYPE( src1->type ) != CV_8UC1 || | ||||
|         CV_MAT_TYPE( src2->type ) != CV_8UC1 || | ||||
|         CV_MAT_TYPE( dst->type ) != CV_8UC1) CV_ERROR(CV_StsUnsupportedFormat, | ||||
|                         "All images must be single-channel and have 8u" );     | ||||
|                         "All images must be single-channel and have 8u" ); | ||||
|  | ||||
|     if( !CV_ARE_SIZES_EQ( src1, src2 ) || !CV_ARE_SIZES_EQ( src1, dst ) ) | ||||
|             CV_ERROR( CV_StsUnmatchedSizes, "" ); | ||||
|      | ||||
|  | ||||
|     if( maxDisparity <= 0 || maxDisparity >= src1->width || maxDisparity > 255 ) | ||||
|         CV_ERROR(CV_StsOutOfRange,  | ||||
|         CV_ERROR(CV_StsOutOfRange, | ||||
|                  "parameter /maxDisparity/ is out of range"); | ||||
|      | ||||
|  | ||||
|     if( mode == CV_DISPARITY_BIRCHFIELD ) | ||||
|     { | ||||
|         if( param1 == CV_UNDEF_SC_PARAM ) param1 = CV_IDP_BIRCHFIELD_PARAM1; | ||||
| @@ -536,10 +536,10 @@ cvFindStereoCorrespondence( | ||||
|         if( param4 == CV_UNDEF_SC_PARAM ) param4 = CV_IDP_BIRCHFIELD_PARAM4; | ||||
|         if( param5 == CV_UNDEF_SC_PARAM ) param5 = CV_IDP_BIRCHFIELD_PARAM5; | ||||
|  | ||||
|         CV_CALL( icvFindStereoCorrespondenceByBirchfieldDP( src1->data.ptr,  | ||||
|             src2->data.ptr, dst->data.ptr,  | ||||
|         CV_CALL( icvFindStereoCorrespondenceByBirchfieldDP( src1->data.ptr, | ||||
|             src2->data.ptr, dst->data.ptr, | ||||
|             cvGetMatSize( src1 ), src1->step, | ||||
|             maxDisparity, (float)param1, (float)param2, (float)param3,  | ||||
|             maxDisparity, (float)param1, (float)param2, (float)param3, | ||||
|             (float)param4, (float)param5 ) ); | ||||
|     } | ||||
|     else | ||||
| @@ -547,7 +547,7 @@ cvFindStereoCorrespondence( | ||||
|         CV_ERROR( CV_StsBadArg, "Unsupported mode of function" ); | ||||
|     } | ||||
|  | ||||
|     __END__;  | ||||
|     __END__; | ||||
| } | ||||
|  | ||||
| /* End of file. */ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Andrey Kamaev
					Andrey Kamaev