値が -1 から 1 に制限されたベルヌーイ行列を生成しようとしてcv::Mat
います。値を保持するためのデータ構造として OpenCV を使用しています。そのような行列を生成する簡単な方法はありますか? 私の知る限り、OpenCV はこれを行う方法を提供していないため、必要に応じて別のライブラリを使用できます。
質問する
166 次
1 に答える
1
値を繰り返し処理し、乱数を 1 つずつ割り当てる必要があります。
その方法は次のとおりです。
boost::random::mt19937 rng; // produces randomness out of thin air
// see pseudo-random number generators
boost::random::uniform_int_distribution<> uni01(0,1);
Mat bernoulli; bernoulli.create(rows, cols,CV_32FC1);
MatIterator_<float> it = bernoulli.begin<float>(), it_end = bernoulli.end<float>();
for(;it!=it_end;++it)
(*it) = uni01(rng) ? 1.0 : -1.0;
于 2012-11-26T22:20:22.777 に答える