我有两个同心圆a和b,我从图像中检测到这些圆,我知道它们的半径。我想要的是两个同心圆之间的点,这样我就可以从这些点中提取RGB值。任何帮助将是有益的。
最佳答案
两个同心圆之间的点的索引(x, y
)(中心(x_0, y_0
),半径r_0, r_1
和r_1 > r_0
)必须满足以下条件:
(x-x_0) * (x-x_0) + (y-y_0) * (y-y_0) >= r_0 * r_0
(x-x_0) * (x-x_0) + (y-y_0) * (y-y_0) <= r_1 * r_1
因此,当遍历图像的所有点时,您可以确定要处理的点:
for (int x=0; x<img.rows; x++)
{
for (int y=0; y<img.cols; y++)
{
double dd = (x-x_0) * (x-x_0) + (y-y_0) * (y-y_0);
if (dd < r_0 * r_0 || dd > r_1 * r_1)
continue;
// Do what you have to do with the points between the two circles
}
}
关于c++ - OPENCV::查找两个同心圆之间的所有点,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51305520/