features2d: don't use rand(), because it is not thread-safe

Results are not stable with srand()
This commit is contained in:
Alexander Alekhin 2017-08-02 23:48:54 +03:00
parent 0bd357e7ec
commit 8be1ba708e

View File

@ -2077,7 +2077,7 @@ void generateDescriptorSubsample(Mat& sampleList, Mat& comparisons, int nbits,
} }
} }
srand(1024); RNG rng(1024);
Mat_<int> comps = Mat_<int>(nchannels * (int)ceil(nbits / (float)nchannels), 2); Mat_<int> comps = Mat_<int>(nchannels * (int)ceil(nbits / (float)nchannels), 2);
comps = 1000; comps = 1000;
@ -2089,7 +2089,7 @@ void generateDescriptorSubsample(Mat& sampleList, Mat& comparisons, int nbits,
samples = -1; samples = -1;
for (int i = 0; i < npicks; i++) { for (int i = 0; i < npicks; i++) {
int k = rand() % (fullM.rows - i); int k = rng(fullM.rows - i);
if (i < 6) { if (i < 6) {
// Force use of the coarser grid values and comparisons // Force use of the coarser grid values and comparisons
k = i; k = i;