OpenCV中随机颜色

cv::RNG是OpenCV中提供的随机数发生器,
随机种子可以用 time(0) 或 cvGetTickCount() 来获取。

举个例子:
#include  	
int main (int argc, char** argv)
{
    //初始化随机种子
    //cv::RNG rng(cvGetTickCount());
    cv::RNG rng(time(0));

    cv::Mat image1(500,500,CV_8UC3,cv::Scalar(rng.uniform(0,255),rng.uniform(0,255),rng.uniform(0,255)));
    cv::namedWindow("image 1");
    imshow("image 1", image1);

    cv::Mat image2(500,500,CV_32FC3,cv::Scalar(rng.uniform(0.0,1.0),rng.uniform(0.0,1.0),rng.uniform(0.0,1.0)));
    cv::namedWindow("image 2");
    imshow("image 2", image2);

    cv::waitKey();
	
    return 0;
}	

其中 rng.uniform(i,j)的作用就是获取在某一范围之内的随机数,如果ij类型需要相同,返回值为与其同类型的随机数。

需要注意的是rng.uniform(0,1.0)会因类型不同而报错,rng.uniform(0,1)只能返回0。

你可能感兴趣的:(OpenCV)