Как обнаружить перевернутый текст в изображении / перевернутом изображении, используя OpenCV и Java


Я некоторое время сталкиваюсь с этой проблемой и до сих пор не могу ее решить.
Я использую OpenCV и Java, чтобы обнаружить карту по изображению и затем обрезать ее, затем все будет хорошо, если исходное изображение будет в правильной ориентации. Задача на данный момент такова: как повернуть изображение на 180 градусов? Или как обнаружить текст с ног на голову, тогда мы можем повернуть его в правильную ориентацию.
В результате я получаю от OpenCV в Java Mat Объект содержит обрезанные карты.
Кто-нибудь сталкивался и решил это раньше, или есть идеи, пожалуйста, направьте меня к правильному решению.
Заранее спасибо.

Вот образцы изображений, которые я обрезал с оригиналов
Образец 1
Образец 2

1 ответ

Просто запустите ваш код, и если он ничего не найдет при первом проходе, вы можете просто повернуть изображение и попробовать снова? Или вы можете попробовать сканировать только небольшую часть карты, и тогда вы сможете определить, находится ли карта в правильном положении или нет.

Вам придется сесть и обдумать, как это можно сделать лучше всего.

Что касается вращения изображений, вы пытались найти его? Потому что, если вы используете буферизованное изображение, вращение может быть выполнено с помощью простого AffineTransform:

AffineTransform at = AffineTransform.getRotateInstance(Math.PI, image.getWidth()/2, image.getHeight()/2.0);
BufferedImage myRotatedImage = createTransformed(image, at);

Изменить: для поворота Mat объект, который вы можете использовать:

Imgproc.warpAffine(Mat source, Mat dest, Mat M, Size size)

Взято с: http://docs.opencv.org/java/3.0.0/

Другие вопросы по тегам