将嘈杂的X形簇分裂为2"线性"集群

时间:2017-04-26 19:41:52

标签: image-processing cluster-computing cluster-analysis

上下文: 我目前正在处理图像处理问题,我需要从二进制噪声图像中识别线条。噪声来自测量和信号处理循环,它们提取我们设备中的转换位置。无法进一步减少。

"集群"使用链接算法生成(所有触摸的点或在指定距离内的点被分组在单个簇中[在给定的示例中,标准是两个转换点之间的一个像素的最大孔尺寸])。然后,我为这些聚类中的每一个计算霍夫变换,从最佳线的原点提取最可能的角度和距离。我还提取了这两个变量的不确定性(当群集不是马铃薯并且具有多个点时通常是几度)。使用这些信息,我能够非常有效地重建线条(知道当我们的设备没有缺陷时,所有相邻的过渡总是平行的)。但这是我的问题:

问题: 由于设备和设计特定的杂质,一些过渡将交叉!这意味着一些星团变成了X形,我的霍夫变换不再给出适当的角度,也不能确定这个星团。此外,因为我的重组算法在转换过程中消除了聚类,这意味着某些转换会被切断。

解决方案: 我正在寻找一种方法将X形簇分成2"线性"然后,我可以在其中应用Hough变换并执行我的线检测算法(当点没有杂质的情况下,它可以很好地工作!)

Example of an X-shaped cluster in a small diagram

以下是我的示例图像中以红色显示的X形群集的YX坐标(我知道它具有yx坐标并不常见。但在处理类似矩阵的图像时效果最佳):

239 240 240 241 241 242 242 243 243 244 244 245 245 246 246 247 247 248 248 249 249 250 250 251 252 252 252 252 253 253 253 252 252 253 253 253 253 254 254 253 254 255 255 251 251 253 256 254 255 255 257 257 250 251 251 258 255 255 257 258 259 259 250 250 251 251 260 256 260 261 261 249 249 250 251 251 262 257 262 263 263 249 249 264 264 256 265 265 265 248 249 266 266 267 267 268 268

658 658 659 658 659 660 661 656 657 658 657 659 660 657 658 660 661 658 659 662 663 661 662 663 659 660 663 664 661 662 665 657 658 657 658 659 660 663 664 666 667 665 666 655 656 656 664 668 668 669 666 667 653 653 654 666 670 671 671 667 667 668 651 652 651 652 668 672 669 669 670 649 650 650 649 650 670 674 671 668 669 647 648 668 669 675 667 668 669 646 646 666 667 669 670 668 669

1 个答案:

答案 0 :(得分:0)

也许你可以根据RANSAC算法的想法尝试一些东西。

  • 从X形簇中取样几个点,用一条线拟合它们,然后检查簇中有多少点非常靠近该线。
  • 如果您采样的点来自X的两个不同分支,则线条拟合将不匹配X的任何分支,因此只有少数几个点非常接近该线条拟合。在这种情况下,丢弃并尝试再次采样几个点。
  • 如果您采样的点位于X的同一分支,那么该分支上的几乎所有点都应该非常接近线条拟合。
  • 如果接近线条拟合的点数很高,您可以说所有这些点属于一个子集群并计算这些点上的Hough变换
  • 其余的点可以用来计算另一个角度(或者你也可以从剩下的点中取样点,给它们拟合一条线并取出与该线相匹配的所有点)