我试图在图像中找到具有一定曲率的边缘:边缘的较亮边应该是凸边。
sobel或canny的边缘本身没有问题,但我不知道如何检查曲率。
一些例子:我想找到绿色边框,而不是红色边框
----->
----->
答案 0 :(得分:4)
如果我正确理解你的要求你想要找到弯曲的边缘,并且在它们的凸面上“封闭”图的一个亮区?
我将您的要求翻译成:
如果曲线上两点之间绘制的任何直线完全位于图表的亮区域内,则接受曲线。
这应该是相当简单的实施。如果曲线包含许多点,则检查每对点之间的每条直线将非常繁琐,但您可能会对检查足够的直线感到满意。
但是你必须为自己定义足够的。
如果OP已经评论过,曲线可能包括满足要求的段和不符合要求的段,它们将被分成柔顺曲线和不符合曲线,这种方法应该是适应性的,尽管我可以看到处理变得非常繁重,因为用于检查凸度的线数变大。
答案 1 :(得分:2)
如果将边缘的几何体提取为有序的点序列,则可以通过考虑3个连续点A-B-C来识别所需序列的哪些部分。 如果C lies on the same side of the line AB作为较亮区域,则ABC是所需曲线的一部分,您可以继续考虑BCD,依此类推,直到您发现C位于AB的错误一侧或者您到达回到序列的开头。
这将避免高性能标记解决方案的假阴性问题,其中测试线段遇到与当前曲线无关的暗区域。