How can I rectify images

Hi all,
Interesting problem here. I am working on extracting old Chinese texts which are written in vertical lines, but first I need to rectify the images like:
After rectification:
But originally they can be in whatever shapes like:
The only thing guaranteed is that those characters are arranged in multiple vertical lines.
I tried to use Uncalibrated Stereo Image Rectification ( https://www.mathworks.com/help/vision/examples/uncalibrated-stereo-image-rectification.html ), but problem is that the images are NOT in pair, so I only know the target pattern rather than the exact target.
If anyone can provide hints about useful functions, please let me know. First-step solutions like automatically rotating the image to the right angle will also be helpful!
Thanks a lot!

1 Comment

Why don't you have control over the image capture situation? If someone is wanting OCR on these books and manuscripts you'd think they would take more care in how they are photographed.

Sign in to comment.

 Accepted Answer

Carl
Carl on 7 Feb 2017
Edited: Carl on 7 Feb 2017
From what I understand, your two main issues are 1) detecting the text in your images, and 2) perspective correction.
You can refer to the following page on detecting and recognizing text in images:
https://www.mathworks.com/help/vision/examples/automatically-detect-and-recognize-text-in-natural-images.html
As well as this File Exchange submission that gives an example on how to perform perspective correction on a bounded area of text:
https://www.mathworks.com/matlabcentral/fileexchange/35531-perspective-control--correction
(This Wikipedia page might be a good starting point as well)

3 Comments

Thanks a lot, Carl.
The perspective control submission is really impressive and definitely a thing I will try to incorporate. For the specific task I will not go as far as OCR since an image-to-image transform suffices.
The automatic text detector is nice though there seem to be bunch of parameters. Will look into that.
Much appreciated!
No problem. Also keep in mind that, while it works, the File Exchange submission uses several deprecated functions like "maketform" and "imtransform". These should be replaced with newer functionality like "projective2d" and "imwarp".
In the new version R2022a it is possible to use the deep learning function "detectTextCRAFT" for text detection and in R2022b the pre-multiply form "projtform2d", "imwarp" etc.

Sign in to comment.

More Answers (0)

Asked:

on 4 Feb 2017

Commented:

on 21 Nov 2022

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!