OpenCV中如何生成随机矩阵

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);
}


猜你喜欢

转载自blog.csdn.net/ss910/article/details/75215543
今日推荐