Is there any software to take an existing picture and to raise up the camera position a little bit for changing the perspectives and the software will recognize how to fill the missing parts?
There's no way in general to do this, the depth information that is lost when a scene is projected onto the sensor cannot be replaced.
However if you're willing to make certain assumptions (such as converging lines in the image representing parrallel lines in 3-D space) you can construct a model that allows you to change perspective (this still leaves the problem of filling in the gaps that result from occlusion).
As far as I know there's no commercial software available to do this, however I've seen research papers which demonstrated this being done to classic paintings, with animations showing the camera position changing.
I think the short answer is no. This can't be done with a single photo no matter how many times american crime shows show it happening (This being the most hilarious example I've seen http://www.youtube.com/watch?v=Vxq9yj2pVWk&feature=player_detailpage#t=70s ).
If however you take a series of images completely covering all objects in a scene then it would be possible to map out a 3d scene with textures and move around the camera view within that.
With a single image from a standard digital camera though, no. Not without magic, or are happy with blank spaces where there is no info.
If by existing picture, you mean a single image, then the answer has to be no. The information encoded in the picture when it was taken is fixed. Changing the camera position in real life changes the information in the picture. Thus it is impossible to post manipulate a single image in order to change the camera position, as that would involve creating information that you don't have.
Now it may be possible to simulate changing the position of the camera through the use of software through a process like:
- Analyse the 2D image and extract recognizable features.
- Build a 3D model of those features that results in the original 2D image when projected from the original POV.
- Have the 3D model fill in guesses of what the hidden surfaces look like.
- Project the model onto a new 2D image from a different POV.
Step 3 is where the information (that you don't have) gets invented.
As an extreme example. Consider a picture of an elephant taken to show its profile. From that image you can't tell that the other side of the elephant was painted hot pink. So no matter how fancy your 3D manipulation software is, it will never be able to create a model that has one side of the elephant being hot pink. Thus the resultant photos showing the elephant from different angles will always be the figment of someones imagination.