From: Kevin on 25 Mar 2010 19:47 Hi everyone, Let say that I am doing the following experiment, Step 1: Take a picture of a scene. Let call this image A. Step 2: Move the camera to a slightly different position to get a slightly different perspective of the same scene. Let call this image B. My question is that is it possible to create image B from image A in software (eg. Matlab)? Any pointer would be appreciated. Kevin
From: ImageAnalyst on 25 Mar 2010 20:18 Kevin: I don't believe so. Trying to create an image of the left side of your face when all you have is a photo of the right side of your face is not possible. Unless you have a perfectly flat (or is it spherical) scene, you're going to see points in your second image that weren't in your first image. The more 3D your scene is the worse it gets.
From: Kevin on 26 Mar 2010 17:17 I agree with you that this is not possible in all cases and you point out a good example where this is not even possible. But what if the scenes seen by two cameras are "similar". That is they are not far apart (as mentioned in your example). I have done some google search on this subject and found quite a lot of links. I believe this problem is more formally known as image registration. The Mathworks Image Processing Toolbox actually does that for me (I tried it out but it is not working well for me). This is what I found in the doc in Image Processing Toolbox under Image Registration --> Registering and Image --> Overview, ..... The differences between the input image and the output image might have occurred as a result of terrain relief and other changes in perspective when imaging the same scene from different viewpoints. .... ImageAnalyst <imageanalyst(a)mailinator.com> wrote in message <f4098e70-3caa-4a20-a87e-d7e6a4027d4d(a)q15g2000yqj.googlegroups.com>... > Kevin: > I don't believe so. Trying to create an image of the left side of > your face when all you have is a photo of the right side of your face > is not possible. Unless you have a perfectly flat (or is it > spherical) scene, you're going to see points in your second image that > weren't in your first image. The more 3D your scene is the worse it > gets.
From: Walter Roberson on 26 Mar 2010 17:52 Kevin wrote: > I agree with you that this is not possible in all cases and you point > out a good example where this is not even possible. > But what if the scenes seen by two cameras are "similar". That is they > are not far apart (as mentioned in your example). I have done some > google search on this subject and found quite a lot of links. I believe > this problem is more formally known as image registration. No, image registration is finding the commonalities between two images and matching their perspectives and orientations, in the face of the possibility that the images might be different. For example, in our work, we require image registration between image registration between MRI images of the same patient at different times (when something may have grown or shrunk or otherwise moved); we also require image registration between MRI images of a specific patient and MRI images of a standard model whose features have been identified, so as to be able to identify those features in the actual patient. What you want to do is more like "image reconstruction". The success in doing it would depend in large part on your success in analyzing visual clues and using a database of the characteristics of common objects, so as to determine what the 3 dimensional components of the original image should be; and having built up a 3D model, then to render the scene from a new perspective. Building a 3D model will, of course, depend upon assumptions about continuity -- e.g., that if the picture is of me standing in front of some wallpaper, that the wallpaper pattern continues behind me (without any mis-matched seams either.) And if in the perspective of the original image, I just happen to be standing in front of something like a pen or a ball, then unless there are continuity clues in the original image, the model deduced is not going to know about that hidden object. Or it might determine from the clutter on my desk that there is probably _something_ there, 87% chance of a pen, but how likely is it to guess what color the pen is or whether the pen cap is on or the pen is retracted? Likewise, if the scene is outdoors, the "real-world" knowledge would have to be sufficient to figure out that there is a baseball base behind where the player is standing -- but it would probably have problems figuring out how many pins are down in the part of the bowling alley hidden behind someone. For image reconstruction, it helps a lot to have at least two different perspectives on a scene (and preferably not 180 degrees apart from each other.)
From: ImageAnalyst on 26 Mar 2010 19:02
Walter is right. You can have 2+ views and create a 3D model to get more views, like these companies do: http://www.3dmd.com/ http://www.canfieldsci.com/imaging_systems/face_and_body_systems/VECTRA_X3_Imaging_System.html OR you can have a model and then generate views. But you can't have one view, NO model, and expect to generate another view. You'd HAVE to make some kind of assumptions, and when you do that, you're making a model. If that's what you want to do, fine, but you need to have some rationale for how you're going to construct your 3D model, such as darker things are farther away, or small things are farther away than similarly shaped larger things (because in reality they're supposed to be the same size), or similar kinds of assumptions. (By the way, the closer is bigger, farther is smaller axiom doesn't hold if you're using a telecentric lens, but those are somewhat rare.) And like Walter said, this is not image registration, which is aligning two or more images - you said you had only one image, therefore you have nothing to align. You talked about synthesizing/ reconstructing/creating/inventing/estimating or whatever a second image from a single image, and that is a totally different concept than aligning two existing images. Here are some tutorials on creating 3D models: http://www.3d-tutorial.com/tutorials.php?cat=11 http://www.strata.com/products/strata_3d_cx_suite/strata_foto_3d_cx/ http://www.acvt.com.au/research/videotrace/ |