仅在图像的特定部分中检测边缘

时间:2011-10-06 08:48:13

标签: matlab image-processing

我想仅在红色标记区域中检测到边缘,如下图所示:

enter image description here

1 个答案:

答案 0 :(得分:1)

一些建议。我假设红色区域是由鼠标输入的,并且您现在拥有要在边缘搜索中包含的区域的掩码。

我提出的算法

1. Do Edge detection
2. Write your own Hough routine but only count edges if they should be included according to the mask. 
3. Pick the edge with the best score in the Hough space. 

当然,您不需要在整个图像上运行边缘检测,但如果您不确定是否处理了搜索区域的边界(这样就不会出现边缘)。只需镜像该区域即可。


更新

好的,不同的方法:

在matlab中使用hough例程。 houghlineshoughhoughpeaks是相关功能。如果只有一条线与您感兴趣的区域相交,那么您就完成了。该行是您想要的结果。

如果有多条线与感兴趣的区域相交,则需要多做一些。我建议计算ROI内沿线的像素数。因此,如果该线与ROI相交10个像素,则该线的得分为10.对所有线执行此操作,然后选择得分最高的线。

请注意,没有一种方法针对速度进行了优化。但是,它们很容易理解。