// Create some random colors Scalar[] colors = new Scalar[100]; RNG rng = new RNG(0x1fffff); for (int i = 0; i < 100; i++) { int r = rng.Uniform(0, 256); int g = rng.Uniform(0, 256); int b = rng.Uniform(0, 256); colors[i] = new Scalar(r, g, b); } Mat old_frame = new Mat(), old_gray = new Mat();
时间: 2024-02-15 15:27:15 浏览: 107
这段代码是用于创建100个随机的颜色,并且初始化两个Mat对象old_frame和old_gray。其中,RNG类是OpenCV中用于产生随机数的类,Uniform()方法用于生成指定范围内的随机整数。而Scalar类则用于表示颜色,在OpenCV中通常使用BGR格式表示颜色。Mat是OpenCV中表示图像的数据结构,old_frame和old_gray是两个用于存储图像的Mat对象。
相关问题
for (int i = 1; i <= hist.Rows; i++) { Point p1 = new Point(2 * (i - 1), 400 - 1); Point p2 = new Point(2 * i - 1, 400 - hist.At<float>(i - 1) / 15); Scalar scalar = new Scalar(255, 255, 255); Cv2.Rectangle(histImage, p1, p2, scalar, -1); } Mat histImage3 = Mat.Zeros(400, 512, MatType.CV_8UC3); for (int i = 1; i <= hist.Rows; i++) { Point p1 = new Point(2 * (i - 1), 400 - 1); Point p2 = new Point(2 * i - 1, 400 - hist.At<float>(i - 1) / 15); Scalar scalar = new Scalar(255, 255, 255); Cv2.Rectangle(histImage3, p1, p2, scalar, -1); } double xxx = Cv2.CompareHist(hist, hist3, HistCompMethods.Correl); MessageBox.Show(xxx.ToString()); Bitmap bitmap1 = BitmapConverter.ToBitmap(result); pictureBox1.Image = bitmap1; }
这段代码是利用OpenCV库生成直方图图像,并进行直方图比较。首先使用for循环在histImage上绘制直方图,其中p1和p2分别为矩形的两个顶点,使用Cv2.Rectangle函数绘制矩形,scalar是矩形的颜色,-1表示矩形内部填充颜色。这里的直方图绘制使用了简单的竖条形式,每个条的宽度为2个像素,高度根据像素值大小比例计算。接下来使用相同的方式在histImage3上绘制直方图。然后使用Cv2.CompareHist函数计算两张灰度图像的直方图相似度,这里使用的是相关性比较方法。最后使用BitmapConverter.ToBitmap函数将结果转换为Bitmap格式并在PictureBox上显示。
void Tracking_Melon::getRandomColors(vector<Scalar>& colors, int numColors) { RNG rng(5); // for(int i=0; i < numColors; i++) // colors.push_back(Scalar(rng.uniform(0,255), rng.uniform(0, 255), // rng.uniform(0, 255))); colors.push_back(Scalar(0, 0, 255)); colors.push_back(Scalar(0, 255, 255)); }
这段代码是一个函数,名为 `getRandomColors`,它接受两个参数:一个是 `vector<Scalar>& colors`,表示颜色向量,另一个是 `int numColors`,表示需要生成的颜色数量。
在函数中,我们首先通过 `RNG rng(5)` 创建了一个随机数生成器,它会以数字 5 作为种子来生成随机数。接着,我们使用 `for` 循环生成指定数量的随机颜色,并将它们添加到颜色向量中。每个颜色都是一个 `Scalar` 对象,包含三个值,分别表示红、绿、蓝三种颜色的强度。我们使用 `rng.uniform(0, 255)` 来生成 0 到 255 之间的随机数,作为每种颜色的强度值。
不过,在这个函数中,我们并没有使用循环来生成随机颜色,而是手动添加了两种颜色:红色和黄色。这可能是为了保证生成的颜色能够清晰地区分出不同的目标物体,或者是为了方便测试而添加的固定颜色。
阅读全文