具有相似斜率和y截距的组线

时间:2017-09-19 21:36:53

标签: python opencv image-processing scikit-image

在python中,我使用hough线来检测图像上的线条。检测线条效果很好,但source image是手绘的,在每个线段上产生许多直线。我想结合具有相似斜率和y截距的线来重新创建图像的整体结构。 我知道我可以改变hough line参数(threshold,min_length,max_gap)来制作更长的直线但是我想保留hough line函数的粒度输出并用输出的行重新构造

图像的霍夫线看起来像this

我当前的输出是一个带有起点/终点的线,斜率和y轴截距的字典:

{'slope': -2.0, 'start': (438, 317), 'yintercept': 167.0, 'end': (457, 279)}
{'slope': -8.0, 'start': (580, 414), 'yintercept': 1442.0, 'end': (582, 398)}
{'slope': -5.333333333333333, 'start': (438, 375), 'yintercept': 
{'slope': -1.5, 'start': (492, 215), 'yintercept': 142.5, 'end': (502, 200)}
{'slope': 0.0, 'start': (524, 316), 'yintercept': 152.0, 'end': (536, 316)}
{'slope': 3.0, 'start': (533, 238), 'yintercept': -232.0, 'end': (527, 220)}
{'slope': -1.9142857142857144, 'start': (450, 292), 'yintercept': 164.37142857142857, 'end': (485, 225)}
{'slope': 0.0, 'start': (467, 317), 'yintercept': 153.0, 'end': (523, 317)}

原始输出中有40行,但我想合并为6行。

我的问题:

  1. 对斜率和y轴截距进行分组的最佳方法是什么?
  2. 如何逐行分组?
  3. 我可以按照确切的斜率进行分组:

    grouper = itemgetter("slope")
        result = []
        for key, grp in groupby(sorted(line_dict, key = grouper), grouper):
            result.append(list(grp))
    

    对此有任何帮助表示赞赏。

0 个答案:

没有答案