Программа позволяет находить на изображении участки с градиентной заливкой (прямоугольной формы, стороны параллельны границам изображения). Она строит маску (есть ли на исходном изображении в этом месте градиентная заливка), а так же при необходимости выделяет искомые прямоугольники и получает координаты их вершин. Ниже есть примеры обоих сценариев использования
Для запуска необходим python3 (протестировано на 3.7)
Установка зависимостей, рекомендуется выполнять в virtualenv:
pip install -r requirements.txt
-
С поиском координат прямоугольников:
python main.py -f images/many_gradients.png --coordinates --plot
-
Только вывод маски:
python main.py -f images/small_gradients.png --plot
-
Не отображать результат через matplotlib, только запись в файл:
python main.py -f images/small_gradients.png
Маска сохраняется в <filename>_mask.png
, например images/small_gradients.png_mask.png
- Сначала изображение разбивается на 3 канала: красный, зелёный, синий
- Затем применяется свертка опреатором Щарра, что даёт градиент исходного изображения
- После этого полученный градиент бинаризируется для выделения областей, в которых на исходном изображении находятся градиентные заливки
- Применяется размытие для удаления выбросов и еще одна бинаризация
- Полученное изображение - готовая маска
- При необходимости (задается параметром запуска программы) можно получить координаты прямоугольников на исходном изображении, для этого производится поиск белых прямоугольников по маске