我有半圆形或椭圆形对象的边界。示例图像是
边界可能略有锯齿(放大时)。我正在寻找在这些曲线上检测到一个兴趣点(位置x和y),我们在其中看到形状的确定变化,例如
可以有两个输出:
目前,我正在使用Python和OpenCV。我想不出一种有效而有效的方法来解决这个问题。任何帮助将不胜感激。
最佳答案
什么也没有说别人会同意我的闭幕投票,所以...
我建议两个步骤:
步骤2在很大程度上取决于您对“兴趣点”的定义。有什么标准?我注意到您的第二个兴趣点实际上非常接近拟合曲线;它是向内偏离的两侧区域。
我建议您在极坐标中进行拟合,然后根据θ和半径考虑结果。可以将两个曲线“展平”为一个单元,以使中心角(θ)为新的x坐标,到中心的距离为新的y坐标。
现在,减去两条曲线并绘制差异(或仅将此新曲线存储为点数组)。在这些差异中寻找适当的异常。这是您必须决定所需内容的地方。也许“r”值有足够的偏差(半径,到中心的距离);也许是梯度有变化(找到一个峰/谷,但没有一个缓慢倾斜的凸起)。偏差(拟合与异常之间的面积),是否要线性或平方...或其他函数?异常的宽度是否符合您的标准?
那就是你需要决定的。这会让你动起来吗?
关于python - 检测曲线边界上的点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42913952/