Я пытаюсь обнаружить белые прямоугольники на изображении в градациях серого, используя разные подходы: определение контура и преобразование Хафа. К сожалению, есть некоторые ограничения изображения, которое я обрабатываю, т.е.
- На изображении много функций, и прямоугольник - не единственные функции.
- Прямоугольник может быть объединен с другими объектами (например, один из краев прямоугольника может быть перекрыт длинной прямой линией)
- Прямоугольник может содержать некоторые другие функции (например, буквы, цифры или какой-либо логотип внутри прямоугольника).
- Некоторые функции выглядят как прямоугольник (например, символ «D» выглядит как прямоугольник с небольшой дугой в правом верхнем и правом нижнем углу; другой пример - трапеция вместо параллелограмма)
- Прямоугольник можно было вращать от 0 до 15 градусов как по часовой стрелке, так и против часовой стрелки.
- Возможно, что линии разбиваются на несколько строк в разных условиях освещения (например, с промежутком в 1 пиксель), поэтому минимальная длина строки для фильтрации линий должна быть небольшой (например, в преобразовании Хафа).
- Когда минимальная длина строки установлена на маленькое значение, чаще можно увидеть повторяющиеся строки для одной и той же строки в разных ориентациях (т.е. необходимо объединить несколько строк)
Для контонурного подхода контуры некоторых изображений нарушены. Кроме того, изображение может содержать такие элементы, как прямоугольник (например, символ «D»). Я не уверен, что это хороший подход.
Я видел много статей/форумов, предлагающих использовать преобразование Хафа для обнаружения прямоугольника, как в следующем посте. К сожалению, я должен установить небольшое значение минимальной длины строки и видел повторяющиеся строки. Я понятия не имею, как работать с точками, упомянутыми выше (например, объединить все повторяющиеся линии и выбрать только одну линию для каждого края, как различать объекты, большая часть которых является линиями, но с небольшими дугами, такими как «D», и как выделить квадрат с одним краем, объединенным длинной прямой линией и т. д.).
Любые предложения приветствуются!
РЕДАКТИРОВАТЬ: добавить несколько изображений
Персонаж D
Прямоугольник с логотипом и краями, объединенными длинной прямой линией
Трапеция (с тенью вверху, образующей трапецию внизу)