【发布时间】:2012-08-09 12:30:10
【问题描述】:
我正在尝试在图像中找到具有一定曲率的边缘:边缘较亮的一侧应该是凸面。
边缘本身sobel或者canny都没有问题,但是不知道怎么检查曲率。
一些例子:我想找到绿色边框,而不是红色边框
----->
----->
【问题讨论】:
标签: algorithm image-processing geometry computer-vision edge-detection
我正在尝试在图像中找到具有一定曲率的边缘:边缘较亮的一侧应该是凸面。
边缘本身sobel或者canny都没有问题,但是不知道怎么检查曲率。
一些例子:我想找到绿色边框,而不是红色边框
----->
----->
【问题讨论】:
标签: algorithm image-processing geometry computer-vision edge-detection
如果我正确理解您的要求,您想找到弯曲的边缘,并且在其凸面“包围”图表的明亮区域?
我将您的要求翻译成:
如果在曲线上两点之间绘制的任何直线完全位于图表的浅色区域内,则接受该曲线。
这应该很容易实现。如果曲线包含许多点,则检查每对点之间的每条直线将非常乏味,但您可能会对检查足够条直线感到满意。
但您必须自己定义足够。
如果正如 OP 所评论的那样,一条曲线可能包括满足要求的段和不满足要求的段,并且它们将被分为顺应曲线和不顺应曲线,尽管我可以,但这种方法应该是可适应的随着用于检查凸度的行数变大,处理变得相当繁重。
【讨论】:
如果您将边缘的几何图形提取为有序的点序列,则可以通过考虑 3 个连续点 A-B-C 来确定您想要序列的哪些部分。 如果 Clies on the same side of the line AB 是较亮的区域,那么 ABC 是所需曲线的一部分,您可以继续考虑 BCD,依此类推,直到您发现 C 在 AB 的错误一侧,或者您回到序列的开始。
这将避免High Performance Mark解决方案的假阴性问题,即测试线段遇到与当前曲线不相连的暗区。
【讨论】: