Python中的高效2D边缘检测

bhe*_*ilr 6 python numpy image-processing scipy

我知道这个问题以前已经解决了,但我很难找到任何描述用于处理这类数据的算法的文献.我基本上是对一组2D数据进行边缘搜索.我希望能够在眼图上找到几个点(通常用于限定高速通信系统),而且由于我没有图像处理经验,所以我很难编写有效的方法.

您可能已经看到,这些图表之所以被称为是因为它们类似于人眼.根据信号和被测系统的不同,它们的厚度,斜率和噪声会有很大变化.通常采取的测量是抖动(交叉区域的水平厚度)和眼睛高度(在宽度的一些指定百分比或最大可能点处测量).我知道这可以通过图像处理而不是更线性的方法来完成,因为到目前为止我的尝试只需要几秒钟才能找到第一个交叉点的左侧.关于如何在Python中解决这个问题的任何想法?我已经在使用NumPy进行一些处理了.

这是一些示例数据,它被格式化为具有相关x轴数据的一维数组.对于这个特殊的例子,它应该每666分(2*int((1.0/2.5e9)/ 1.2e-12)),因为信号的速率是2.5 GB/s,点之间的时间是1.2 ps.

谢谢!

例1 例2

小智 3

您尝试过OpenCV(开放计算机视觉)吗?它被广泛使用并具有 Python 绑定。

不想成为 PITA,但你确定采用数值方法不会更好吗?我见过的所有用于眼图分析的工具都走数值路线;我还没有看到任何一个分析图像本身的。

你说你的算法在该数据集上速度慢得令人痛苦——我的下一个问题是为什么。您正在查看过采样的数据集吗?(我猜你是。)如果是这样,你是否尝试过先消除信号?这至少会给你的算法提供更少的样本。