首页
学习
活动
专区
圈层
工具
发布

MSER圆心
EN

Stack Overflow用户
提问于 2015-08-03 16:52:24
回答 1查看 247关注 0票数 0

我正在使用MSER特征检测器来检测图像中的所有圆圈,它工作得很完美,但我必须得到这些圆圈的中心。你知道有没有可能拿到中锋?源代码如下:

代码语言:javascript
复制
void main()
{

 Mat inImg = imread(CProfilessuro1012Desktop1.bmp);

 Mat textImg;
 cvtColor(inImg, textImg, CV_BGR2GRAY);

 vector vector Point  contours;
 vector Rect bboxes;
 Ptr MSER mser = MSERcreate(22, (int)(0.00001textImg.colstextImg.rows), (int)(0.00015textImg.colstextImg.rows), 1, 1); 
 mser-detectRegions(textImg, contours, bboxes); 

 for(int i=0;i1;i++)
    { for(int j=0;jcontours[i].size();j++)
     cout   x=contours[i][j].x y=contours[i][j].y endl;
    coutendl;
 }
 for (int i = 0; i  bboxes.size(); i++)
 {
    cout   x=bboxes[i].x y=bboxes[i].y endl;
  rectangle(inImg, bboxes[i], CV_RGB(0, 255, 0));
 }
 cout  contours[0].size()endl;
 imshow(, inImg);
 waitKey(0);

}

我做了什么:

代码语言:javascript
复制
float sumX = 0, sumY = 0;
int size = contours.size();
Point2f centroid;
if(size > 0){

    for(int i=0;i<size;i++)
    {
        for(int j=0;j<contours[i].size();j++)
        {
        sumX += contours[i][j].x;
        sumY += contours[i][j].y;
        }
         centroid.x = sumX/contours[i].size();
 centroid.y = sumY/contours[i].size();
 cout<<centroid.x<<" " <<centroid.y<<endl;
 sumX=0;
 sumY=0;
    }
EN

回答 1

Stack Overflow用户

发布于 2018-08-02 16:46:14

您可以绘制包含等高线的圆。

代码语言:javascript
复制
(x, y),radius = cv2.minEnclosingCircle(contour)
center = (int(x),int(y))
radius = int(radius)

有关更多信息,请访问https://docs.opencv.org/3.1.0/dd/d49/tutorial_py_contour_features.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31783163

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档