我必须检测灰色图像中椭圆的边界。这些图像包含很多东西,但总有一个(部分隐藏的)椭圆。我知道图像中这个椭圆的中心在哪里。
优点:
椭圆始终可见
椭圆中心附近的点已知
- 椭圆始终为黑色(8 位值 = [0, 50])
问题:
白色 Blob (值 = [220, 255])可以出现在椭圆内(而不是在椭圆外)
黑色伪像(值 = [0, 80])可以隐藏 0% 到 50% 的椭圆和白色 Blob (但中心仍然已知)
这里有 4 个示例图像,代表可能出现的不同情况:
我已经尝试了几种算法(霍夫圆、椭圆检测等),但没有一种算法能够应对所有不同的情况。此外,他们不受益于已知中心。 欢迎所有建议!
最佳答案
尝试使用 RANSAC 方法,它可以让您避免噪声边缘并准确拟合椭圆。椭圆有 2 个焦点,你可以找到它们,知道你的椭圆方程,然后找到它们之间的中间点。这将是你的椭圆质心。
RANSAC 椭圆拟合的代码示例:https://github.com/seisgo/EllipseFit
关于c++ - 检测已知中心的部分隐藏椭圆的边界(OpenCV),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43240944/