Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I detect (and correct) skew in images?

Tags:

image

skew

I have a large collection of scanned images, and they are all somewhat skewed, with a white area around them.

So, these images have rectangles of colors, surrounded by a large white area. The problem is that these rectangles of color are not parallel to the image border.

I'm sure there must be a way to programmatically detect these rectangles of color, so that I can rotate the image (thus un-skewing it) and then crop it so that just the interesting part is left. I guess I'm not really sure what this process is called, so I am having trouble searching for a solution on Google.

Does anyone know of an approach that would get me started? Any libraries out there that I should look into? Or the name of an algorithm that would help?

I am planning on using Java for this project, but I haven't really started yet, so I am open to library suggestions in any language.

like image 795
pkaeding Avatar asked Jul 03 '10 06:07

pkaeding


1 Answers

  • border detection
  • hough transform (if all rectangles on an image have the same skew)
  • rectangle contour detection (connected component contour, then minimum area bounding rectangle)
like image 190
rwong Avatar answered Oct 18 '22 15:10

rwong