views:

545

answers:

1

How can I do this in Python/PIL? I.e., given the four points of an offset rectangle (a photographed document), make it look flat on as if it were scanned. Is there a simple algorithm for it?

Also, are there any other manipulations I should do to make it look more "scan-like"?

I want to make a simple version of this program for myself in Python.

+8  A: 

Look at transform() with method set to QUAD

http://www.pythonware.com/library/pil/handbook/image.htm

im.transform(size, QUAD, data) => image
im.transform(size, QUAD, data, filter) => image

Maps a quadrilateral (a region defined by four corners) from the image to a rectangle with the given size.

Data is an 8-tuple (x0, y0, x1, y1, x2, y2, y3, y3) which contain the upper left, lower left, lower right, and upper right corner of the source quadrilateral.

Lou Franco
Thanks! Here's my first try: http://utilitymill.com/utility/convert_photo_to_scanNow I want to figure out how to simulate uniform brightness.
Greg