如何在云数据中提取高原(Matlab)

问题描述 投票:0回答:1

我目前正在编写一个程序来检测低分辨率二进制图像中的边缘(在Matlab中。

由于霍夫变换在边缘很多的图片中效果不佳,因此我尝试了另一种方法

  1. 遵循对象区域的边界。

  2. 确定每个边界像素a_i的斜率/角度i(使用特定数量的邻居来确定它)。

  3. 确定每个像素(a_ort)_i的角度i,与[2]中计算的斜率正交。

  4. 按照(a_ort)_i的方向确定像素w_i位置处的潜在边缘的宽度i(假设我沿正确的方向而不是与(a_ort)_i呈180°移开)。 >

  5. 最后我得到了两个地块

a)在x轴上具有边界像素索引i而在y轴上具有边界像素索引(a_ort)_i的图。

b)在x轴上具有边界像素索引i,在y轴上具有w_i的图。

我想检测边缘可能在哪里。因此,对于图a),可能会在x轴上某个范围A的平稳段(假设具有近似恒定的a_A角)并随后出现一个很小的平台B稳定段(大多数情况下只有约3- 5个像素),其角度为a_B,然后是范围C和角度a_C的区域。

[当我“驾驶”假想的汽车绕过边界时,边缘将转化为w_A-w_C=180°w_B=w_A-90°-听起来很简单。曲线b)相同(但不同!),其中w_A对应于宽度w_A,该宽度应与范围为C且具有w_C的宽度相同(因此w_C=w_A)。范围B将具有一些不同的值w_B。现在到有问题的部分:我得到的图非常阴暗,很难读取和提取数据。由于范围B通常很小(只有几个像素),并且由于非常高的误差,相应的角度和宽度a_Bw_B的计算几乎没有用,因此我可以完全忽略它们。我基本上只需要找到平台A和C以及有“断点”的地方。实际上,我只需要绘制a)或b)即可确定我想要的内容(边缘可能位于的像素),但是由于数据存在很多异常,因此非常糟糕,因此我想同时包含和使用它们。

问题:(TL:DR)。

我有图a)的数据和图b)的数据,我想在其中找到平稳段(常数值的线)(忽略并过滤其他所有内容)。在a)中,确定x轴上从一个平台到另一个平台的“跳跃”值,而平台之间相差180°。在b)中,我想确定一个高原之间存在一个“缺口”,理想情况下,该缺口应该与我在图a)中搜索的两个高原一样长。

三张图片:

“”“”“”

我目前正在编写一个程序来检测低分辨率二进制图像中的边缘(在Matlab中)。由于Hough变换在边缘很多的图片中效果不佳,因此我尝试了另一种方法...

matlab plot data-fitting
1个回答
0
投票

[三个“高原”的情况似乎对应于本文第14-16页处理的情况:https://fr.scribd.com/document/380941024/Regression-par-morceaux-Piecewise-Regression-pdf

以下,从上述参考文献中复制(翻译)。希望对您有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.