В приложении используются следующие библиотеки: ImGui, OpenCV, stb, OpenGL. Stb – необходима для загрузки изображения в текстуру изображения для дальнейшего отображения ее пользователю. OpenGL – используется как библиотека для рендеринга интерфейса ImGui. Выбор в ее пользу был сделан ввиду ее кроссплатформенности.
При запуске приложения пользователь видит небольшое окно (рисунок 1), в котором ему предлагается ввести путь до изображения, которое следует обработать.
Такое метод выбора изображения также использован для соблюдения требований по кроссплатформенности, так как ImGui не имеет штатных средств для работы с файловой системой.
Рисунок 1 - стартовое окно
Если ввести некорректный путь до изображения, то будет выведено сообщение об ошибке (рисунок 2).
Рисунок 2 - cсообщение об ошибке
При вводе корректного пути до изображения откроется новое окно (рисунок 3), где будет возможно выбрать точки для коррекции перспективы. Там же будут кнопки для отката на стартовую страницу, сохранения и для выбора пути сохранения. Также выводится текущий путь, куда сохраняется обработанное изображение.
Рисунок 3 - окно с открытым изображением
Если нажать на кнопку сохранения до момента создания исправленного изображения, то выведется сообщение об ошибке (рисунок 4).
Рисунок 4 - ошибка при сохранении
Далее при выборе четырех разных углов на изображении будет выведено (рисунок 5) исправленное изображение. Порядок выбора углов не имеет значения.
Рисунок 5 - исправленное изображение
Для сборки необходимо добавить системные переменные, указывающие на OpenCV. Работа приложения проверена на OpenCV версии 4.20.
1. В переменные среды для пользователя в Path добавьте путь до bin-директории нужной сборки OpenCV. Некорректное указание этой переменной может приводить к ошибке при сборке с указанием на отсутствие отсутствия .dll файла OpenCV.
2. Также добавьте системную и пользовательскую переменную OPENCV_DIR c путем до папки OpenCV.
3. Если для сборки используется не версия OpenCV 4.2, то в настройках проекта VS следует поменять название файла opencv_world420.lib на ту версию, которая будет использоваться, то есть, например, на opencv_world310.lib. Менять следует в Настройки проекта -> Компоновщик -> Ввод -> Дополнительные зависимости.
4. После выполнения этих действий проект можно запускать