出于我自己的学习目的,我正在尝试开发一种算法,该算法将列出书,并给出如下书架的图像:
第一步是将图像切成单独的书。
我在Mathematica中的算法是:
img = ColorConvert[Import["http://i.stack.imgur.com/IaLQk.jpg"], "GrayScale"]
- 做一个基本的边缘检测和
删除文本并尝试保持长行
edge = DeleteSmallComponents[EdgeDetect[img, 3],Last[ImageDimensions[img]]/5]
然后删除不需要的水平线
lines = Sort[ImageLines[img5] /. {{0., _}, {_, _}} -> Sequence[]] Show[img, Graphics[{Thick, Orange, Line /@ lines}]]
但是结果却不尽人意:
我的问题是:
- 我该如何改善它以获得更好的结果?
- 有更聪明的方法吗?
- 我应该进一步处理图像以提高(后期)OCR阶段的准确性吗?
- 如何使用颜色信息改善分割效果?
1
@OrenPinsky我看不到细分问题:“假书区域”的数量不高(我在您提供的示例中只能看到一个),并且如果您打算进行某种文本识别,下一步,应该足以区分书籍(区域有文字)和非书籍(无文字)
—
penelope
@OrenPinsky,我想说您的结果非常好。:)
—
Dima 2012年