Home | History | Annotate | Download | only in src

Lines Matching full:obs_info

60 //    Parameters: obs_info - addres of pointer to CvImgObsInfo structure
69 static CvStatus CV_STDCALL icvCreateObsInfo( CvImgObsInfo** obs_info,
86 obs_info[0] = obs;
93 CvImgObsInfo* obs_info = p_obs_info[0];
95 cvFree( &(obs_info->obs) );
96 cvFree( &(obs_info->mix) );
97 cvFree( &(obs_info->state) );
98 cvFree( &(obs_info) );
258 icvUniformImgSegm( CvImgObsInfo* obs_info, CvEHMM* hmm )
264 float inv_x = 1.f/obs_info->obs_x;
265 float inv_y = 1.f/obs_info->obs_y;
268 if ( !obs_info || !hmm ) return CV_NULLPTR_ERR;
272 for (i = 0; i < obs_info->obs_y; i++)
275 int superstate = (int)((i * hmm->num_states)*inv_y);/* /obs_info->obs_y; */
279 for (j = 0; j < obs_info->obs_x; j++, counter++)
281 int state = (int)((j * hmm->u.ehmm[superstate].num_states)* inv_x); /* / obs_info->obs_x; */
283 obs_info->state[2 * counter] = superstate;
284 obs_info->state[2 * counter + 1] = state + index;
294 if ( hmm->num_states > obs_info->obs_y ) return CV_BADSIZE_ERR;
297 float row_per_state = (float)obs_info->obs_y / hmm->num_states;
304 col_per_state[i] = (float)obs_info->obs_x / ehmm->num_states;
313 ss_bound[hmm->num_states - 1] = obs_info->obs_y;
330 es_bound[ehmm->num_states - 1] = obs_info->obs_x;
338 obs_info->state[row * obs_info->obs_x + 2 * k] = i;
339 obs_info->state[row * obs_info->obs_x + 2 * k + 1] = j + index;
347 memcpy( &(obs_info->state[m * obs_info->obs_x * 2]),
348 &(obs_info->state[row * obs_info->obs_x * 2]), obs_info->obs_x * 2 * sizeof(int) );
594 // Parameters: obs_info - observations
600 static CvStatus CV_STDCALL icvEstimateObsProb( CvImgObsInfo* obs_info, CvEHMM* hmm )
618 int need_size = ( obs_info->obs_x * obs_info->obs_y * total_states * sizeof(float) +
619 obs_info->obs_y * hmm->num_states * sizeof( CvMatr32f) );
623 buffer[1] = obs_info->obs_y;
624 buffer[2] = obs_info->obs_x;
633 int need_size = ( obs_info->obs_x * obs_info->obs_y * total_states * sizeof(float) +
634 obs_info->obs_y * hmm->num_states * sizeof( CvMatr32f/*(float*)*/ ) );
644 buffer[1] = obs_info->obs_y;
645 buffer[2] = obs_info->obs_x;
660 if ( (obs_info->obs_x > (*obsx) ) || (obs_info->obs_y > (*obsy) ) )
676 tmp += obs_info->obs_y;
686 for( j = 0; j < obs_info->obs_y; j++ )
689 tmpf += ehmm->num_states * obs_info->obs_x;
699 int vect_size = obs_info->obs_size;
706 int obs_x = obs_info->obs_x;
755 for( j = 0; j < obs_info->obs_y; j++ )
759 float* obs = obs_info->obs + j * obs_x * vect_size;
845 for( j = 0; j < obs_info->obs_y; j++ )
849 int obs_index = j * obs_info->obs_x;
854 for( k = 0; k < obs_info->obs_x; k++ )
856 CvVect32f vect = (obs_info->obs) + (obs_index + k) * vect_size;
1048 CvStatus icvMixSegmProb(CvImgObsInfo* obs_info, int num_img, CvEHMM* hmm )
1058 CvImgObsInfo* info = obs_info + k;
1269 // obs_info - observations
1277 static float CV_STDCALL icvEViterbi( CvImgObsInfo* obs_info, CvEHMM* hmm )
1282 float inv_obs_x = 1.f / obs_info->obs_x;
1287 CvMatr32f superB = icvCreateMatrix_32f(hmm->num_states, obs_info->obs_y );
1291 int* super_q = (int*)cvAlloc( obs_info->obs_y * sizeof(int) );
1295 q[i] = (int**)cvAlloc( obs_info->obs_y * sizeof(int*) );
1297 for (j = 0; j < obs_info->obs_y ; j++)
1299 q[i][j] = (int*)cvAlloc( obs_info->obs_x * sizeof(int) );
1308 for (j = 0; j < obs_info->obs_y; j++)
1313 icvViterbiSegmentation( ehmm->num_states, obs_info->obs_x,
1315 _CV_LAST_STATE, &q[i][j], obs_info->obs_x,
1316 obs_info->obs_x, &max_gamma);
1324 icvViterbiSegmentation( hmm->num_states, obs_info->obs_y,
1326 _CV_LAST_STATE, &super_q, obs_info->obs_y,
1327 obs_info->obs_y, &log_likelihood );
1329 log_likelihood /= obs_info->obs_y ;
1334 for (i = 0; i < obs_info->obs_y; i++)
1336 for (j = 0; j < obs_info->obs_x; j++, counter++)
1341 obs_info->state[2 * counter] = superstate;
1342 obs_info->state[2 * counter + 1] = state + q[superstate][i][j];
1352 for (j = 0; j < obs_info->obs_y ; j++)
1651 CvImgObsInfo *obs_info = 0;
1657 IPPI_CALL( icvCreateObsInfo( &obs_info, num_obs, obs_size ));
1661 return obs_info;
1665 cvReleaseObsInfo( CvImgObsInfo ** obs_info )
1671 IPPI_CALL( icvReleaseObsInfo( obs_info ));
1678 cvUniformImgSegm( CvImgObsInfo * obs_info, CvEHMM * hmm )
1684 IPPI_CALL( icvUniformImgSegm( obs_info, hmm ));
1727 cvEstimateObsProb( CvImgObsInfo * obs_info, CvEHMM * hmm )
1733 IPPI_CALL( icvEstimateObsProb( obs_info, hmm ));
1739 cvEViterbi( CvImgObsInfo * obs_info, CvEHMM * hmm )
1747 if( (obs_info == NULL) || (hmm == NULL) )
1750 result = icvEViterbi( obs_info, hmm );