Lines Matching refs:state
370 CvStereoGCState* state = 0;
376 state = (CvStereoGCState*)cvAlloc( sizeof(*state) );
377 memset( state, 0, sizeof(*state) );
378 state->minDisparity = 0;
379 state->numberOfDisparities = numberOfDisparities;
380 state->maxIters = maxIters <= 0 ? 3 : maxIters;
381 state->Ithreshold = 5;
382 state->interactionRadius = 1;
383 state->K = state->lambda = state->lambda1 = state->lambda2 = -1.f;
384 state->occlusionCost = OCCLUSION_PENALTY;
388 return state;
393 CvStereoGCState* state;
398 state = *_state;
399 cvReleaseMat( &state->left );
400 cvReleaseMat( &state->right );
401 cvReleaseMat( &state->ptrLeft );
402 cvReleaseMat( &state->ptrRight );
403 cvReleaseMat( &state->vtxBuf );
404 cvReleaseMat( &state->edgeBuf );
487 icvComputeK( CvStereoGCState* state )
489 int x, y, x1, d, i, j, rows = state->left->rows, cols = state->left->cols, n = 0;
490 int mind = state->minDisparity, nd = state->numberOfDisparities, maxd = mind + nd;
496 const uchar* lptr = state->left->data.ptr + state->left->step*y;
497 const uchar* rptr = state->right->data.ptr + state->right->step*y;
525 static int64 icvComputeEnergy( const CvStereoGCState* state, const CvStereoGCState2* state2,
528 int x, y, rows = state->left->rows, cols = state->left->cols;
534 const uchar* left = state->left->data.ptr;
535 const uchar* right = state->right->data.ptr;
536 short* dleft = state->dispLeft->data.s;
537 short* dright = state->dispRight->data.s;
538 int step = state->left->step;
539 int dstep = (int)(state->dispLeft->step/sizeof(short));
541 assert( state->left->step == state->right->step &&
542 state->dispLeft->step == state->dispRight->step );
661 static int64 icvAlphaExpand( int64 Eprev, int alpha, CvStereoGCState* state, CvStereoGCState2* state2 )
666 int k, a, d, d1, x, y, x1, y1, rows = state->left->rows, cols = state->left->cols;
668 GCVtx* vbuf = (GCVtx*)state->vtxBuf->data.ptr;
669 GCEdge* ebuf = (GCEdge*)state->edgeBuf->data.ptr;
674 const uchar* left0 = state->left->data.ptr;
675 const uchar* right0 = state->right->data.ptr;
676 short* dleft0 = state->dispLeft->data.s;
677 short* dright0 = state->dispRight->data.s;
678 GCVtx** pleft0 = (GCVtx**)state->ptrLeft->data.ptr;
679 GCVtx** pright0 = (GCVtx**)state->ptrRight->data.ptr;
680 int step = state->left->step;
681 int dstep = (int)(state->dispLeft->step/sizeof(short));
682 int pstep = (int)(state->ptrLeft->step/sizeof(GCVtx*));
687 assert( state->left->step == state->right->step &&
688 state->dispLeft->step == state->dispRight->step &&
689 state->ptrLeft->step == state->ptrRight->step );
842 CvArr* _dispLeft, CvArr* _dispRight, CvStereoGCState* state, int useDisparityGuess )
863 CV_ASSERT( state != 0 );
872 if( !state->left || state->left->width != size.width || state->left->height != size.height )
877 cvReleaseMat( &state->left );
878 cvReleaseMat( &state->right );
879 cvReleaseMat( &state->ptrLeft );
880 cvReleaseMat( &state->ptrRight );
881 cvReleaseMat( &state->dispLeft );
882 cvReleaseMat( &state->dispRight );
884 state->left = cvCreateMat( size.height, size.width, CV_8UC3 );
885 state->right = cvCreateMat( size.height, size.width, CV_8UC3 );
886 state->dispLeft = cvCreateMat( size.height, size.width, CV_16SC1 );
887 state->dispRight = cvCreateMat( size.height, size.width, CV_16SC1 );
888 state->ptrLeft = cvCreateMat( size.height, size.width, CV_32SC(pcn) );
889 state->ptrRight = cvCreateMat( size.height, size.width, CV_32SC(pcn) );
890 state->vtxBuf = cvCreateMat( 1, size.height*size.width*2, CV_32SC(vcn) );
891 state->edgeBuf = cvCreateMat( 1, size.height*size.width*12 + 16, CV_32SC(ecn) );
896 cvSet( state->dispLeft, cvScalarAll(OCCLUDED));
897 cvSet( state->dispRight, cvScalarAll(OCCLUDED));
902 cvConvert( dispLeft, state->dispLeft );
903 cvConvert( dispRight, state->dispRight );
906 state2.Ithreshold = state->Ithreshold;
907 state2.interactionRadius = state->interactionRadius;
908 state2.lambda = cvRound(state->lambda*DENOMINATOR);
909 state2.lambda1 = cvRound(state->lambda1*DENOMINATOR);
910 state2.lambda2 = cvRound(state->lambda2*DENOMINATOR);
911 state2.K = cvRound(state->K*DENOMINATOR);
914 icvInitGraySubpix( left, right, state->left, state->right );
915 disp = (int*)cvStackAlloc( state->numberOfDisparities*sizeof(disp[0]) );
916 _disp = cvMat( 1, state->numberOfDisparities, CV_32S, disp );
917 cvRange( &_disp, state->minDisparity, state->minDisparity + state->numberOfDisparities );
922 float L = icvComputeK(state)*0.2f;
935 E = icvComputeEnergy( state, &state2, !useDisparityGuess );
936 for( iter = 0; iter < state->maxIters; iter++ )
938 for( i = 0; i < state->numberOfDisparities; i++ )
941 int64 Enew = icvAlphaExpand( E, -alpha, state, &state2 );
947 else if( ++nZeroExpansions >= state->numberOfDisparities )
953 cvConvert( state->dispLeft, dispLeft );
955 cvConvert( state->dispRight, dispRight );