Выявление похожих шаблонов на изображении в Java - PullRequest
3 голосов
/ 25 ноября 2011

Предположим, у меня есть изображение следующего типа, как я могу определить точки вместе с файлом изображения.Получив координаты для точек, я хочу соединить несколько точек, например, в виде квадрата или треугольника.

Какой подход будет лучшим для этого.?

[править]: Кроме того, я не знаю количество точек, и оно не является регулярным, как наличие линий между точками.

enter image description here enter image description here

Ответы [ 2 ]

0 голосов
/ 25 ноября 2011

Эта тема большая и сложная - в ней масса технических приемов (книги по этому вопросу обычно стоят около 2 кг за 100 долларов). В этом конкретном случае я бы рекомендовал следующие шаги.

  1. Бинаризованное изображение (довольно быстрый и эффективный алгоритм бинаризации Совола, ускоряемый за счет интегральных изображений)

  2. Найдите ваши позиции сетки с помощью интегрального изображения (Интегральное изображение вычисляется из исходного, где каждое значение пикселя является суммой всех пикселей слева и вверх от него.) - пиксели справа и снизу изображения дать вам представление о том, является ли строка или столбец изображения пустым или нет

Я использую эти методы для подготовки изображений и поиска текстовых строк в проекте с открытым исходным кодом JavaOCR:

http://sourceforge.net/projects/javaocr/

0 голосов
/ 25 ноября 2011

Вы можете запустить маску свертки через пространство X * Y изображения. Маска будет точной 7x7 (или любой другой) точкой, которая у вас есть на изображении. Вы будете запускать маску, отрицая пиксели, и любое положение маски даст вам самый темный результат, что будет означать, что вы нашли положение на изображении, где существует точка.

Сохранение всех точечных местоположений в коллекции для дальнейшей обработки.

Как вы можете соединить эти точки в квадраты и треугольники, возможно, другой вопрос.

...