gpt4 book ai didi

opencv - Opencv:如何获取两个圆心的坐标?

转载 作者:行者123 更新时间:2023-12-02 17:49:11 30 4
gpt4 key购买 nike

我有一个小问题,我需要一些帮助。我有一个带有两个圆圈的图像,我想获取中心的坐标。一圈我解决了这个问题。我不知道能获得第二个圆圈。有任何想法吗?

这是我的代码:

Mat canny_output;
vector<vector<Point>> contours;
vector<Vec4i> hierarchy;

Canny(BGRFilter,canny_output,100,200,3);

findContours(canny_output,contours,hierarchy,CV_RETR_TREE,CV_CHAIN_APPROX_SIMPLE,Point(0,0));

vector<Moments> mu(contours.size());

for (int i=0;i<contours.size();i++)
{
mu[i]=moments(contours[i],false);
}

vector<Point2f> mc(contours.size());

for (int i=0;i<contours.size();i++)
{
mc[i]=Point2f(mu[i].m10/mu[i].m00,mu[i].m01/mu[i].m00);
}



Mat drawing = Mat::zeros( canny_output.size(), CV_8UC3 );

for( int i = 0; i< contours.size(); i++ )
{
Scalar color = Scalar( 121, 100, 90 );
drawContours( drawing, contours, i, color, 2, 8, hierarchy, 0, Point() );
circle( drawing, mc[i], 4, color, -1, 8, 0 );
}

这是二进制图像

这是带有轮廓的图像。

最佳答案

您可以使用Hough Circles查找圈子。

关于opencv - Opencv:如何获取两个圆心的坐标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27226899/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com