Jump to content


2d perspective transform


6 replies to this topic

#1 lordsme

    New Member

  • Members
  • Pip
  • 2 posts

Posted 15 September 2008 - 03:19 PM

I'm looking for an algorithm for 2D perspective transform.
I need to "stretch" a quad to a rect and I need a matrix that converts the coordinates.

I've found some code in GIMP, but I can't get it work.
Do you know any source or documentation on the web?
Thank you!

#2 Nils Pipenbrinck

    Senior Member

  • Members
  • PipPipPipPip
  • 597 posts

Posted 15 September 2008 - 06:42 PM

Yes, I've done that.. It's not that difficult but you don't find many sources or information how to do it on the net.


I'll write and post a source that does the de-stretching (e.g. from quad to rectangle) in OpenGL to show it later..

Nils
My music: http://myspace.com/planetarchh <-- my music

My stuff: torus.untergrund.net <-- some diy electronic stuff and more.

#3 z80

    Valued Member

  • Members
  • PipPipPip
  • 104 posts

Posted 15 September 2008 - 08:17 PM

Sounds like a scale matrix.. If you really mean a rect that is.

#4 Reedbeta

    DevMaster Staff

  • Administrators
  • 5309 posts
  • LocationSanta Clara, CA

Posted 15 September 2008 - 09:18 PM

No, going from an arbitrary convex quad to a rectangle is not a simple scaling.
reedbeta.com - developer blog, OpenGL demos, and other projects

#5 Nils Pipenbrinck

    Senior Member

  • Members
  • PipPipPipPip
  • 597 posts

Posted 15 September 2008 - 09:55 PM

You need a 3*3 projective matrix. I'm not really into the mood to write code anymore, but I've looked for the relevant paper:

http://torus.untergr...age_warping.pdf

You find a simple implementation of the math in the OpenVG reference implementation. The function is called vguComputeWarpQuadToSquare

The code can be downloaded from the khronos.org site somewhere on the OpenVG page.

Cheers,
Nils
My music: http://myspace.com/planetarchh <-- my music

My stuff: torus.untergrund.net <-- some diy electronic stuff and more.

#6 lordsme

    New Member

  • Members
  • Pip
  • 2 posts

Posted 18 September 2008 - 08:13 AM

Thank you Nils, it works!
I wrote the code by myself, reading the excellent paper.

Davide

#7 Nils Pipenbrinck

    Senior Member

  • Members
  • PipPipPipPip
  • 597 posts

Posted 18 September 2008 - 09:30 PM

Great!

And good luck with your project..
My music: http://myspace.com/planetarchh <-- my music

My stuff: torus.untergrund.net <-- some diy electronic stuff and more.





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users