繁体   English   中英

如何使用Python创建可操纵的边缘检测滤镜或如何丢弃不符合所需角度的边缘

[英]How to create steerable Edge Detection filters using Python or discard edges that don't conform to desired angle

我知道如何使用OpenCV进行基本的Canny边缘检测。 但是,我需要丢弃所有不在预定角度15度范围内的边缘。

任何帮助将不胜感激。

这是一个古老的问题,但这是您应该使用的过程。

1]首先过滤您的源图像(背景减法/颜色/等)

2]应用通用的边缘检测器或可控滤波器,或者(如果您想获得一些非常好的结果并且出于研究目的而使用,请寻找相位矫正变换算法

3]将这些行保存在矢量中

4]创建画圆的算法(这是主要思想)

圆图绘制算法(进一步是CDA)将获取边缘过滤器返回的每个点。

对于每个点,它将基于您在两个直线上可以接受的两个点的最大/最小距离来构建直径可变的圆[Dmin; Dmax]。

如果与您的角度相对应的圆八分圆中没有下一个像素,只需将其消除即可。

CDA Octant表示

一旦您的线与您的角度匹配,您就可以按长度对它们进行排序,以消除可能是由于噪音引起的线。

您还应该注意,还有其他方法,此方法是一个不错的方面:

1-强大的抗噪和低质量的图像/视频

2-符合CUDA(即易于推入并行处理)。

3-它比大多数基本的线检测器快且准确得多。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM