2013-02-28 5 views
0

Я студент-бакалавр и в настоящее время работает над окончательным проектом по оптическому распознаванию шрифтов Брайля, используя камеру реального времени. Я успешно обработал изображение в формате HSV и извлек только значение изображения HSV, чтобы предотвратить окружающий свет, влияющий на изображение, выполненный бинарный порог, обнаружение canny edge, эрозия и расширение для получения только точек Брайля от камера.Как сегментировать записи Брайля с камерой реального времени?

Я хотел бы спросить, как выполнить сегментацию в задаче, когда расстояние между точками всегда изменяется, когда камера движется ближе или дальше к произведениям Брайля?

Любая помощь будет оценена по достоинству. Спасибо

ответ

0

Для этого вы обнаружите какую-то относительную пару координат, которая позволит вам обнаружить «масштаб» брайлевской записи в вашем изображении. Это может быть идентификационная пара точек на обоих концах записи или даже только некоторые характерные точки. С масштабом вы можете преобразовать изображение в одинаковый размер, в зависимости от того, на каком расстоянии находится камера.

+0

Я думаю, что масштабный коэффициент каждой относительной пары координат точек Брайля будет отличаться, потому что всякий раз, когда вы держите камеру, есть вероятность, что камера не будет идеально параллельна. Я имею в виду, что есть вероятность, что при удержании камеры будет какая-либо асимметрия по оси x, y и z. – anarchy99

0

Существует не простое, общее решение вашей проблемы. Разумеется, если I не сразу понимают, как эти шрифты Брайля отстоят друг от друга, это нелегко решить простым алгоритмом.

enter image description here

Лучше читать литературу по системе Брайля текст, поговорите с вашим профессором, и есть слепой человек объяснить вам, как они читают по Брайлю.

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

+0

Я бы подумал, что угол линий можно обнаружить, нет? Вероятно, вы можете обнаружить вертикальные и горизонтальные выровненные точки, а затем преобразовать перспективу на это –

+0

Да, но это не тривиальное задание, особенно если учесть, что программа может пропустить основу ровно на 45 градусов и построить неправильную сетку. –

+0

Если вы видите сетку , однако, есть очень четкие линии в любом направлении. 45 * не произойдет, поскольку они, кажется, никогда не выстраиваются идеально. –

0

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

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

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

присваивать каждой точке номер ячейки сетки. это должно быть чем-то легким, как местоположение x/y, разделенное на 32 пикселя ячейки ((y/32) * (ширина/32)) + (x/32)

Держите подсчет точек на ячейку ячейки и когда все идентифицируются точки, сортировка таблицы точек по номеру сетки и построение индекса по смещению в таблице и количеству элементов.

Если разрешение варьируется, проведите несколько ячеек с большим количеством точек, чтобы определить расстояние между парами ячеек.

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

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

На этом этапе вам нужно будет сопоставить точки с шрифтом Брайля. Горизонтальные пары пар и пары вертикальных пар должны иметь возможность начать выравнивание текста Брайля.

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

+0

У меня есть некоторые ваши очки, но я все еще смущен тем, почему местоположение должно быть разделено на 32 пикселя? Является ли это стандартным расстоянием между точками шрифта Брайля в обработке изображений? В вашем прошлом проекте в системе штрих-кода, фиксированное расстояние (например, 32 пикселя) успешно прочитало штрих-код, находится ли он рядом или далеко от камеры? – anarchy99

+0

32 пикселя - это просто произвольный размер сетки. Для отображаемого изображения размер сетки будет больше похож на 64. Как общий размер, одна ячейка сетки должна иметь возможность удерживать один символ. Таким образом, в квадратах квадратов 2x2, вы можете быть уверены, что один символ всегда сможет соответствовать, но не так много точек, что при попытке сопоставить точки, которые там тоже не могут быть перестановками. В 64 пикселах в одну сетку может входить до 9 точек, поэтому необходимо переместить максимум 36 точек. –

+0

Для брайля самое близкое сопряжение точек определяло бы разрешение. Для моих потребностей устойчивость к искажениям была столь же важна, как и изменчивость разрешения. Эта ограниченная вариация разрешения в диапазоне разрешения, где пара должна быть в пределах диапазона. Поэтому при базовом разрешении 320 точек на дюйм я читаю диапазон 240-400 точек на дюйм в пределах одного изображения. Обработка становится запутанной, когда расстояние между двумя точками при высоком разрешении больше, чем пространство между 3 точками при низком разрешении. –

 Смежные вопросы

  • Нет связанных вопросов^_^