使用OpenCV进行椭圆检测
computer-vision
image-processing
java
opencv
13
0

我想使用OpenCV 2.4.1软件包随附的Tutorial 2-Basic作为起点,使用Android版OpenCV检测椭圆。请注意,我的椭圆将是一个完美的photoshop之一。

据我了解,使用“ HoughCircles”只会找到完美的(或大约)圆,因此省略了椭圆。

任何帮助将不胜感激,因为我是OpenCV的初学者

这是我到目前为止尝试过的

    case Sample2NativeCamera.VIEW_MODE_CANNY: (ignore the Canny mode...)

        capture.retrieve(mGray, Highgui.CV_CAP_ANDROID_GREY_FRAME);
        Imgproc.HoughCircles(mGray, mCircles, Imgproc.CV_HOUGH_GRADIENT, 1, 20);
        Log.d("Ellipse Points", " X " + mCircles.get(1,1)[0] + mCircles.get(1, 1)[1]);

        break;

如果您认为更多信息可能有用,请告诉我。

参考资料:
Stack Overflow
收藏
评论
共 3 个回答
高赞 时间 活跃

一种可能的解决方案类似于此线程检测图像上的硬币(和合适的椭圆)

您应该看一下opencv的function fitEllipse

收藏
评论

如果您已经知道要查找的椭圆的大小,请尝试以下步骤:

  • 在图像中找到Canny边缘
  • 使用滑动窗口,其大小是您要查找的椭圆的主轴的最大长度。
  • 在窗口内,收集所有边缘像素,随机选择6个像素,并使用线性最小二乘法拟合一般形式的椭圆。
  • 在类似RANSAC的过程中重复上述步骤。
  • 如果有足够的内线,则您有一个椭圆。
收藏
评论

HoughCircles使用的参数起着基本作用。 HoughCircles可以检测到完美,还可以检测到近乎完美的圆(椭圆)。我建议您检查以下示例:

这个答案有很多不错的参考资料。

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号