例如,如何根据水平边缘拆分此书架的两排书?我使用sobel边缘检测器来检测边缘,但我不知道如何或使用什么条件来分割图像。
答案 0 :(得分:1)
我可以推荐两种不同的方法来解决这个问题。
1)机器学习方法。这需要一些标记数据,指示边缘位置的y坐标,然后HOG特征加上随机森林分类器将完成这项工作。
2)图像处理方法。首先,让我们看看what i have done的输出:
蓝色表示得分是分离边缘的所需y位置。
这种方法总是依赖于对数据的一些假设,这里我们假设目标水平边缘分离书籍,其中包含许多垂直线。也就是说,我们正在寻找y坐标,其中找到未被垂直线切割的长水平线。
一旦确定了我们的目标,其余的就开始了。
首先我们需要一个直线探测器,hough transform会这样做。
其次,我们使用两个分数投票选择每个y坐标作为最佳分隔符:
1)第一个分数描述了在附近有多少条水平线(之前找到)。我们称之为 s_h 。
2)第二个分数描述了附近有多少条长垂直线。我们称之为 s_v 。
最后,我们只需要结合 s_v 和 s_h 来制作最终得分。例如,
s = s_h /(s_v + 1)
使用此功能,我们会在开头发布第一张得分地图。需要进行一些进一步的后期处理,但这并不困难。
这里只有一种解决方法,你可以在这里找到my code presented in a notebook。