为了我自己的学习目的,我正在尝试开发一种算法,该算法将列出书本,并给出如下书架的图像:



第一步是将图像切成单独的书。

我在Mathematica中的算法是:

    img = ColorConvert[Import["http://i.stack.imgur.com/IaLQk.jpg"], "GrayScale"]



做基本的边缘检测&

>删除文字并尝试保留较长的行

edge = DeleteSmallComponents[EdgeDetect[img, 3],Last[ImageDimensions[img]]/5]



,然后删除不需要的水平线

结果不是很好:



我的问题是:


如何改善此效果以获得更好的结果?
有更聪明的方法吗?
我应该进一步处理图像以提高(稍后)OCR阶段的准确性吗?
如何使用颜色信息改善分割效果?


评论

@OrenPinsky我看不到分割问题:“假书区域”的数量不高(我在您提供的示例中只能看到一个),并且如果您打算做某种文本识别,下一步,应该足以区分书籍(区域有文字)和非书籍(无文字)

@OrenPinsky,我想说您的结果非常好。 :)

#1 楼

这是研究论文的链接,该论文试图做您想要做的事情。使用图片功能可能会对您有所帮助
在youtube上也很酷的视频

评论


$ \ begingroup $
不幸的是,第一个链接已断开。
$ \ endgroup $
– Youngjae
2015年11月12日14:42

#2 楼

您使用哪种方法检测线路?您是否尝试过使用LSD?

这是我使用LSD进行的快速测试的结果:

在第一张图片中,我仅显示了带有75至105度之间的角度,且长度大于图像的$ 0.1 *高度$:




您可以尝试一下,弄清楚如何选择最佳的线段,将其扩展到线段,并得到比您发布的结果更好的结果。 br />

评论


$ \ begingroup $
“您尝试过尝试LSD吗?”不错的尝试,FBI;)
$ \ endgroup $
–乳香
2012年11月18日在20:51



$ \ begingroup $
Mathematica的ImageLine基于霍夫变换,现在,我确信(主要是从此处的反馈)它可以很好地工作。但是,让我感到困扰的是,当我转换为灰度图像时,我失去了相关数据,并且在此应用中,颜色数据可以(直观地)帮助强大的边缘检测器。 (对于史蒂夫·乔布斯来说,效果非常好!;-)
$ \ endgroup $
– Oren Pinsky
2012年11月19日在2:16

$ \ begingroup $
我见过一个朋友使用LSD进行门检测,我认为他最终对结果感到满意。我会说值得一试:D
$ \ endgroup $
–佩内洛普
2012年11月19日在9:55

#3 楼

您可以尝试对单个颜色域进行边缘检测,然后使用您选择的边缘检测方法合并它们。

与直接在彩色图像上进行边缘检测相比,它可能会产生更好的结果。 />

#4 楼

可能会发现isrish提供的断开链接中的文章,结合了图像和文本功能:移动图书书脊识别的一种混合方法
,Proc。第19届ACM多媒体国际会议,2011年。您还可以查阅David Chen等人的其他论文,例如使用Proc。 SPIE2010。