Я пытаюсь обнаружить прямоугольники на изображениях. Фон изображений один цвет (большую часть времени). Я попробовал два метода, чтобы получить двоичное изображение (1 = фон, 0 = края), чтобы позже выполнить преобразование Хафа ...
Собел или Канни фильтр
Гладкое изображение A, Создать разностное изображение A - Гаусс, Создать двоичное изображение с порогом (Создать гистограмму, самый высокий интервал должен быть фоновым ...)
Результатом является двоичное изображение с краями. Я действительно не знаю, какой метод лучше работает для различных изображений. Есть идеи?
image-processing
Мартин Томпсон
источник
источник
Ответы:
Однажды я написал приложение для обнаружения прямоугольников. Он использовал определение краев Собеля и линейное преобразование Хафа.
Вместо поиска одиночных пиков в изображении Хафа (линии), программа искала 4 пика с расстоянием между ними 90 градусов.
Для каждого столбца в изображении Хафа (соответствующем некоторому углу), три других столбца были найдены для локальных максимумов. Когда пиковый пик был обнаружен в каждом из четырех столбцов, прямоугольник был обнаружен.
Программа построила прямоугольник и провела дополнительные проверки согласованности цвета внутри и снаружи прямоугольника, чтобы различить ложные срабатывания. Программа была для обнаружения размещения бумаги в отсканированных листах бумаги.
источник
Вы можете обнаружить, что лапласиан гауссовского детектора краев является лучшим выбором. Он должен давать замкнутые контуры чаще, чем детектор краев Canny. Я считаю, что это то, что вы хотите, так как ваш следующий шаг - применить преобразование Хафа.
источник
Может быть, это будет полезно для вас, но уже слишком поздно, когда я захожу на этот сайт сегодня
источник
Если ваше изображение относительно чистое, у вас есть очевидные прямоугольники без большого количества разрывов, альтернативой преобразованию Хафа является создание контуров и уменьшение их до тех пор, пока они не сформируют 4-сторонний контур = ваш прямоугольник.
Для этого есть примеры opencv
источник
Учебник по Python для поиска прямоугольников написанных с нуля. Использует Canny и Hough Lines.
источник