Я пытаюсь, для моих собственных учебных целей, разработать реализацию алгоритма, который бы перечислял книги, учитывая изображение книжной полки, например:
Первым шагом является нарезка изображения на отдельные книги.
Мой алгоритм в 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?
- Как использовать информацию о цвете для улучшения сегментации?