Алгоритм определения угла для мобильного - PullRequest
5 голосов
/ 19 июля 2009

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

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

Чтобы прояснить вопрос, есть ли у кого-нибудь предложения по использованию определенного алгоритма или библиотеки?

Ответы [ 3 ]

2 голосов
/ 27 июля 2009

Поскольку вы ищете обычную сетку 9x9, рассмотрите преобразование Hough . Один из способов - сначала запустить детектор краев, найти все прямые линии, используя оригинальное преобразование Хафа, а затем попытаться выяснить, какие из них образуют сетку. Или, может быть, вы можете придумать умный способ параметризации всей сетки.

2 голосов
/ 20 июля 2009

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

Например, сетка содоку всегда выглядит одинаково:

  • Белый квадрат
  • 9 x 9 регулярных сеток

обработка изображения в цветовом пространстве HSV позволит вам искать области высокой яркости (цвета белого цвета), RGB немного подходит для большинства методов обработки изображений.

установление порога изображения должно уменьшить шум

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

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

: D

1 голос
/ 21 июля 2009

Я считаю OpenCV очень полезным для обработки изображений, и я бы оценил себя как довольно среднего программиста.

Вот пример (в C ++, но, возможно, вы могли бы его портировать), который выполняет обнаружение углов в OpenCV.

...