Консольная утилита для пакетной обработки изображений с целью создания выровненных портретных изображений.
На исходном изображении выделяются лицо и глаза. Затем путем поворота изображения выравнивается линия глаз. Финальным шагом изображения обрезаются так, чтобы на нем осталось только лицо.
Пример обработки:
Этот репозиторий является отрефакторенной копией проекта PhotoChopper с некоторым вырезанным функционалом (который закрыт лицензией). Сам проект создавался в первой половине 2015 года.
Программа позволяет определять лицо, глаза и обрезать изображение так, чтобы в нем оставалась голова целиком (с некоторыми настраиваемыми отступами). Это так называемое портретное изображение, которое соответствует стандартам для многих программ хранения личной информации. В требования также входит выравнивание линии глаз относительно горизонта. Программа имеет поддержку такого выравнивания.
Для лучшего понимания, что делает программа - посмотреть результат работы, показанный на скриншоте ниже. Для удобства просмотра в программе есть поддержка графической отладочной информации.
Скриншот c отладочной информацией:
В программе есть ряд ограничений:
- поддерживается распознавание только одного лица на фотографии,
- для более точного распознавания фон желательно должен быть более однородный и по цвету отличаться от лица и головы,
- на маленьких изображениях (где лицо имеет малую площадь в пикселях) очень маленький процент положительных срабатыванией и возможны неточности.
- Batch processing mode
- Optimized for large images
- Several logging levels
- GUI for preview and for debug capabilities
- Config with many customization parameters
- EXIF metadata support
- Crop and scale image either preserving proportions or its adjusting to required
- MSVC++ 2013
- C++11
- OpenCV=3.0.0
- Exiv2=0.24
- Expat=2.1.0
- zlib=1.2.7
- libconfig=1.5
- tinydir
$ PhotoChopper.exe [-i=<input dir>] [-o=<output_dir>] [-s=<path to settings file>]
- Karpov R.
- Antonov A.
MIT
- Use Qt and Boost for utilities implementation
- Add graphical user interface
- Asynchronus image processing in batch mode