1.中心思想:不要使用randu、randn这种,要先用时间值作为随机种子,然后使用fill。
2.该方法不能指定种子,每次生成的序列都一样,都是91、83、138……
void CMyXXXDlg::OnBnClickedButton1()
{
Mat mat_map(30, 40, CV_8UC1);
randu(mat_map, 0, 255);
CString str;
str.Format(_T("%d"), mat_map.at<uchar>(0,0));
MessageBox(str);
}
3.该方法可以指定种子,每次运行结果都不一样:
void CMyXXXDlg::OnBnClickedButton2()
{
Mat mat_map(30, 40, CV_8UC1);
RNG rng(unsigned int(time(NULL)));
rng.fill(mat_map, RNG::UNIFORM, 0, 255, false);
CString str;
str.Format(_T("%d"), mat_map.at<uchar>(0,0));
MessageBox(str);
}