Как стать автором
Обновить

Поиск четырёхугольников документов на мобильных устройствах

Время на прочтение6 мин
Количество просмотров13K
Всего голосов 17: ↑16 и ↓1+15
Комментарии4

Комментарии 4

А как вам такой вариант:
— порог,
— отсечение цельных краёв,
— разбиение на сетку,
— подсчет количества черных и белых точек, в каждой ячейке,
— выделение цельной области от центра.

По моему это будет работать в разы быстрее, чем анализ углов между кучей линий.
Если вопрос только в скорости работы схемы перебора, то вы меня немного удивили.
Куча линий состоит из 12 штук — по 3 кандидата для каждой стороны (да, это не указано в статье, но не выписывать же сюда всю конфигурацию?), т.е. 81 возможный четырёхугольник. Почти все операции по анализу углов и начислению штрафов — это O(1), кроме штрафов за вылезание — они О(n), где n — число пикселей за точкой пересечения, которые мы примем во внимание, а не длина картинки или даже региона.
Собственно, выкладка по времени в конце статьи говорит о том, что это далеко не самая затратная часть алгоритма.

К вашему варианту — мне не вполне понятны первые два шага.
К чему применять порог и что вы понимаете под отсечением цельных краёв?
Порог — делает картинку черной-белой, элементарное урезание цветов. Это нужно для упрощения обработки.
Отсечение цельных краев — просто удаляем края попиксельно, если ряд одного цвета.

Суть в чем: вы анализируете края (линии), я же предлагаю выделять цельный элемент.

По скорости: Вы обрабатываете каждый пиксел 5 функциями (вычисление 3 каналов, 1 максимума, 1 нахождение К), я же 2 (порог и подсчет количества).

С масштабированием хорошая идея.
А, идея ясна. Да, это действительно быстро, но на классе изображений и документов, которые хорошо поддаются бинаризации. Должны быть видны все 4 стороны и не должно быть полос внутри, иначе фейл. Неплохо подходит к съемке чего-либо формата А4 на столе, а розовые права в руках или всевозможные карточки/визитки (прозрачные, полосатые, серые в ёлочку) с бинаризацией не дружат.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий