made random generators of MLL classes depended on default rng (theRNG) (#205).

This commit is contained in:
Maria Dimashova
2010-11-29 14:04:08 +00:00
parent 7860d52e14
commit c104cdce96
10 changed files with 53 additions and 55 deletions

View File

@@ -581,7 +581,7 @@ void CvEM::kmeans( const CvVectors& train_data, int nclusters, CvMat* labels,
__BEGIN__;
CvRNG rng = cvRNG(-1);
cv::RNG* rng = &cv::theRNG();
int i, j, k, nsamples, dims;
int iter = 0;
double max_dist = DBL_MAX;
@@ -605,7 +605,7 @@ void CvEM::kmeans( const CvVectors& train_data, int nclusters, CvMat* labels,
{
for( i = 0; i < nsamples; i++ )
labels->data.i[i] = i*nclusters/nsamples;
cvRandShuffle( labels, &rng );
cvRandShuffle( labels, &rng->state );
}
for( ;; )
@@ -702,7 +702,7 @@ void CvEM::kmeans( const CvVectors& train_data, int nclusters, CvMat* labels,
const float* s;
for( j = 0; j < 10; j++ )
{
i = cvRandInt( &rng ) % nsamples;
i = (*rng)(nsamples);
if( counters->data.i[labels->data.i[i]] > 1 )
break;
}
@@ -738,7 +738,7 @@ void CvEM::kmeans( const CvVectors& train_data, int nclusters, CvMat* labels,
if( counters->data.i[k] == 0 )
for(;;)
{
i = cvRandInt(&rng) % nsamples;
i = (*rng)(nsamples);
j = labels->data.i[i];
if( counters->data.i[j] > 1 )
{