例如,如何根据水平边缘来分割这个书架的两排书籍?我用索贝尔边缘检测器来检测边缘,但我不知道如何或用什么条件来分割图像。如何分割基于最长水平边缘的图像?
回答
我可以推荐你两种不同的方法来解决这个问题。
1)机器学习方法。这需要一些标记数据,指示边缘位置的y坐标,然后HOG特征加上随机森林分类器将完成这项工作。
2)图像处理方法。首先,让我们来看看的what i have done输出:
蓝色指示的是所述的分离边缘的期望的y位置的分数。
这种方法总是依赖于您的数据的一些假设,在这里我们假设目标水平边缘分隔书籍,其中包含很多垂直线。也就是说,我们正在寻找y坐标,其中定位了未被垂直线切割的长水平线。
一旦定义我们的目标,其余的开始很容易。
首先我们需要一个直线检测器,hough transform会做。
其次,我们投票支持的是使用两个成绩最好的分离器,每个Y坐标:
1)第一得分描述多少长水平线(先前发现的)位于邻里。我们称之为s_h。
2)第2分数描述多少长垂直线位于附近。我们称之为s_v。
最后,我们只需要结合S_V和S_H做出最后的比分。例如,
S = S_H /(S_V + 1)
利用这一点,我们得到张贴在年初第一个得分王的地图。一些进一步的后处理需要完成,但不应该很难。
这里只是解决它的一种可能性,在这里您可以找到my code presented in a notebook。
如果您提供了代码以便其他人可以重现您生成的内容,那将是一件好事。记住,当你写一个答案时,你不仅要帮助OP解决他们的问题,而且你可能会帮助未来的访问者解决这个问题,他们可能会遇到同样的问题。 – rayryeng
我已经添加了一个ipython笔记本的链接,以显示它是如何工作的。但是我所做的事情往往会过分依赖这张图片,因此需要切换某些细节以使其更加稳定。但是,如果您可以拥有更多像这样的图像(比如100?),我强烈建议您调整机器学习方法。 –
如果你在MATLAB中这样做的话会更好,因为这是问题的标记,但是一个IP笔记本比没有更好!......绝对比OP更值得 – rayryeng
- 1. 从边缘检测中分割图像
- 2. 图像分割与边缘检测
- 3. 使用OpenCV从边缘图像中删除长长的水平/垂直线
- 4. 如何测量边缘检测图像边缘的长度?
- 5. 平滑的图像边缘
- 6. 水平分割基于视图的iPad模板?
- 7. 我如何平滑多分量图像的边缘?
- 8. 基于图形的图像分割
- 9. 检测彩色图像中的水平圆形边缘
- 10. 矢量图像的图像比较(基于边缘检测)?
- 11. 如何去除Canny边缘图像中的长边?
- 12. 具有固定最大边缘长度的平面图
- 13. 边缘检测和分割
- 14. Android图像水平拉长
- 15. 基于事先的图像分割
- 16. 基于颜色的图像分割
- 17. Altova水平分割
- 18. 如何在水平中点处设置背景图像位置的左边缘
- 19. 如何启动水平分割的vifm
- 20. 如何移动基于边缘的SKPhysicsBody?
- 21. Graphviz - 节点之间的水平边缘
- 22. 考虑边缘权重的最小s-t边缘切割
- 23. 图像边缘检测和平滑?
- 24. 使用opencv图像边缘平滑
- 25. 在WPF中平滑图像边缘
- 26. 边缘幅度(垂直和水平边缘)
- 27. 如何在存在水平分割的情况下将垂直分割窗口移动到水平分割?
- 28. 平滑分割图像
- 29. 基于行长的分割文件
- 30. 从PDF中提取的图像是水平分割的
“_split this shelf of this shelf_”...图像丢失。你能发布迄今为止的代码吗? –
和[mcve](http://stackoverflow.com/help/mcve)。 – kkuilla
@il_raffa - 图片网址在帖子中,但由于用户的低代表而没有显示。我已经加入了。 – rayryeng