伯努利矩阵与OpenCV

Bernoulli Matrix with OpenCV

本文关键字:OpenCV      更新时间:2023-10-16

我正在尝试生成一个伯努利矩阵,其值介于 -1 和 1 之间。我正在使用OpenCV的cv::Mat作为保存值的数据结构。有没有一种简单的方法来生成这样的矩阵?据我所知,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;