Если вы не нашли другого идеального решения, один из методов, которые я в конечном итоге использовал для предварительной обработки OCR, заключался в преобразовании исходных изображений в PPM и использовании unpaper в Ubuntu.Вы можете попытаться выровнять изображение в зависимости от того, какие стороны указаны как четко определенные края, и есть возможность обойти фильтры, которые обычно применяются к черно-белому тексту.Вы, вероятно, не хотите использовать их для изображений.
Пример для изображений, перекошенных не более чем на 15 градусов, с использованием нижнего и правого краев для определения поворота: было написано
unpaper -n -dn bottom,right -dr 15 input.ppm output.ppm
unpaper
в C, если источник вам какой-либо помощи.