0
我試圖生成一個伯努利矩陣,其值介於-1和1之間。我使用OpenCV的cv::Mat
作爲數據結構來保存這些值。有沒有簡單的方法來生成這樣的矩陣?據我所知,OpenCV沒有提供這樣做的方法,所以如果需要的話,我很樂意使用另一個庫。伯努利矩陣與OpenCV
我試圖生成一個伯努利矩陣,其值介於-1和1之間。我使用OpenCV的cv::Mat
作爲數據結構來保存這些值。有沒有簡單的方法來生成這樣的矩陣?據我所知,OpenCV沒有提供這樣做的方法,所以如果需要的話,我很樂意使用另一個庫。伯努利矩陣與OpenCV
您需要迭代這些值並逐個分配一個隨機數。
這裏是如何做到這一點:
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;