Комментарии 4
А как вам такой вариант:
— порог,
— отсечение цельных краёв,
— разбиение на сетку,
— подсчет количества черных и белых точек, в каждой ячейке,
— выделение цельной области от центра.
По моему это будет работать в разы быстрее, чем анализ углов между кучей линий.
— порог,
— отсечение цельных краёв,
— разбиение на сетку,
— подсчет количества черных и белых точек, в каждой ячейке,
— выделение цельной области от центра.
По моему это будет работать в разы быстрее, чем анализ углов между кучей линий.
+3
Если вопрос только в скорости работы схемы перебора, то вы меня немного удивили.
Куча линий состоит из 12 штук — по 3 кандидата для каждой стороны (да, это не указано в статье, но не выписывать же сюда всю конфигурацию?), т.е. 81 возможный четырёхугольник. Почти все операции по анализу углов и начислению штрафов — это O(1), кроме штрафов за вылезание — они О(n), где n — число пикселей за точкой пересечения, которые мы примем во внимание, а не длина картинки или даже региона.
Собственно, выкладка по времени в конце статьи говорит о том, что это далеко не самая затратная часть алгоритма.
К вашему варианту — мне не вполне понятны первые два шага.
К чему применять порог и что вы понимаете под отсечением цельных краёв?
Куча линий состоит из 12 штук — по 3 кандидата для каждой стороны (да, это не указано в статье, но не выписывать же сюда всю конфигурацию?), т.е. 81 возможный четырёхугольник. Почти все операции по анализу углов и начислению штрафов — это O(1), кроме штрафов за вылезание — они О(n), где n — число пикселей за точкой пересечения, которые мы примем во внимание, а не длина картинки или даже региона.
Собственно, выкладка по времени в конце статьи говорит о том, что это далеко не самая затратная часть алгоритма.
К вашему варианту — мне не вполне понятны первые два шага.
К чему применять порог и что вы понимаете под отсечением цельных краёв?
0
Порог — делает картинку черной-белой, элементарное урезание цветов. Это нужно для упрощения обработки.
Отсечение цельных краев — просто удаляем края попиксельно, если ряд одного цвета.
Суть в чем: вы анализируете края (линии), я же предлагаю выделять цельный элемент.
По скорости: Вы обрабатываете каждый пиксел 5 функциями (вычисление 3 каналов, 1 максимума, 1 нахождение К), я же 2 (порог и подсчет количества).
С масштабированием хорошая идея.
Отсечение цельных краев — просто удаляем края попиксельно, если ряд одного цвета.
Суть в чем: вы анализируете края (линии), я же предлагаю выделять цельный элемент.
По скорости: Вы обрабатываете каждый пиксел 5 функциями (вычисление 3 каналов, 1 максимума, 1 нахождение К), я же 2 (порог и подсчет количества).
С масштабированием хорошая идея.
0
А, идея ясна. Да, это действительно быстро, но на классе изображений и документов, которые хорошо поддаются бинаризации. Должны быть видны все 4 стороны и не должно быть полос внутри, иначе фейл. Неплохо подходит к съемке чего-либо формата А4 на столе, а розовые права в руках или всевозможные карточки/визитки (прозрачные, полосатые, серые в ёлочку) с бинаризацией не дружат.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Поиск четырёхугольников документов на мобильных устройствах