opencv - 如何在 OpenCV 中用随机颜色绘制圆圈

标签 opencv random colors

我正在使用 SURF 算法将两张图像与 OpenCV 匹配。 我有关键点。

现在我想用随机颜色的圆圈绘制这些关键点。

我知道如何在 OpenCV 中使用函数 cvCircle 绘制圆,但是颜色是用 cvScalar(r,g,b) 固定的。

我希望图像中关键点的圆圈颜色与其附近的圆圈不同。

OpenCV中的库函数cv::drawMatches()有我想要的效果。但我不知道如何实现它。

谁能告诉我怎么画圆圈。

谢谢!

最佳答案

假设您想在Mat image 上绘制不同颜色的圆圈。这是一种生成随机颜色的方法:

RNG rng(12345);
Mat image = Mat::zeros(500, 500, CV_8UC3);     // change to the size of your image
for (int i = 0; i < circleNum; i++) {
    Scalar color = Scalar(rng.uniform(0,255), rng.uniform(0, 255), rng.uniform(0, 255));
    circle(image, center[i], radius[i], color, -1, 8, 0);
}

关于opencv - 如何在 OpenCV 中用随机颜色绘制圆圈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19400376/

相关文章:

opencv - 使用 OpenCV SolvePnP 的高架相机姿态估计导致几厘米的高度偏移

arrays - 在Matlab中将Iplimage转换为矩阵或数组

javascript - 随机淡出 <div>

opencv - OpenCV 中的支持向量机 : how to handle unbalance data?

c++ - OpenCV 廉价立体相机无法同时加载两个流

mysql - 快速 rand() 顺序搜索

sql-server-2008 - 如何从数字列表中选择随机数

macos - AppleScript 中如何处理颜色?

android - 如何使用 Android 色板

algorithm - 用 C# 将温度显示为颜色?