【发布时间】:2015-05-28 17:59:51
【问题描述】:
编辑:我找到了解决方案:D 感谢您的帮助。
我创建了一个图像处理算法,可以从数据中提取该图像。它很复杂,所以我不会详细介绍,但这张图片本质上是一个巨大的 numpy 数组(它可视化对象像素强度的角度依赖性)。
我想编写一个程序来自动确定曲线何时切换方向。我有数据,也有这张图片,但事实证明,用任何一种方法做一些有意义的事情都很棘手。阈值化失败,因为有不同背景颜色的波段。出于同样的原因,Sobel 算子和 Hough 变换也不能很好地工作。
人类很容易看到这种切换何时发生,但告诉计算机却并不容易。有小费吗?谢谢!
编辑:谢谢大家,我现在正在用一般高斯卷积和结果的骨架化后拟合该图像的线条。任何有关这样做的指针将不胜感激:)
【问题讨论】:
-
您可以使用edge detection algorithm,它由图像与内核的卷积组成。这将类似于局部阈值,避免不同背景的问题。当您拥有边缘时,您可以将点分组到相应的线,并使用样条插值方案找到线的导数。这会给你转折点,因此当曲线切换方向时。
-
大多数边缘检测算法都依赖于一种阈值处理,使该图像无用。问题是我正在检测曲线,而不仅仅是线条。你怎么看?
-
据我了解,您遇到的问题是,由于曲线周围的背景强度不同,全局阈值不合适。然而,当执行局部阈值化时,仅比较一个点的最近邻域,从而避免了上述问题。从边缘检测方案中,您将获得与原始图像相同大小的矩阵,该矩阵由检测到边缘的索引处的布尔值组成。从这些点,您可以检索您的线条/曲线。
-
线条总是大致垂直吗?
-
你能把图像数组上传到某个地方吗?
标签: python image-processing numpy statistics signal-processing