What tools would you use to change the perspective in a 2D image?

Let’s say you are looking at a photograph of a real scene. You see a sign which you know is circular, but it appears as an ~ oval in the image. What transforms would you use to reconstruct this object? Please note that your perspective point of view could be displaced both left-right and up-down. I question whether this is a simple transform with an mma function or whether a dynamic point-of-view and recursion are required. Keywords and naming functions would help.