Is it possible to reconstruct two 2D images (Front side and left side) to 3D image ?

7 views (last 30 days)
Something like these....

Answers (3)

Image Analyst
Image Analyst on 11 Mar 2017
Edited: Image Analyst on 11 Mar 2017
You can use repmat() to replicate the side image a bunch of times, say N times. Then use bsxfun() to mask the volumetric image with the front view. Here's a start
% Replicate side view N times into 3-D.
image3D = repmat(sideView, [1,1,N]);
% Mask the image.
final3DImage = bsxfun(@times, image3D , cast(frontView, 'like', image3D ));
It might take some adaptation, but that's the basic idea if you have two binary images and want to project in 3-D.
  3 Comments
Walter Roberson
Walter Roberson on 4 Apr 2017
If you have boundaries extracted at different rotation angles, then your situation should, I suspect, be equivalent to doing CT reconstruction. If I recall correctly, that uses the radon transform; https://www.mathworks.com/discovery/image-reconstruction.html
Dynamic
Dynamic on 23 Jan 2022
@dhwani contractor can you please share your code for forwarding projection which helped you reconstruct the 2D projection from the 3D object?

Sign in to comment.


Walter Roberson
Walter Roberson on 11 Mar 2017
No, it is not. You can see from this demonstration that two side views cannot possibly be enough to reconstruct the entire object.
  3 Comments
Walter Roberson
Walter Roberson on 12 Mar 2017
The only two sides you can reconstruct with that information is the two sides you start out with -- in other words, no reconstruction at all.
Image Analyst
Image Analyst on 4 Apr 2017
You could get A 3-D object from 2 views by extruding the 2-D shapes along each direction. It would not necessarily be the right one though. If it were right, then there would be no need for CT and MRI and those Nobel prizes for those would never have been granted. Like if you had the E and the G you could get a volume but if you didn't have B, the projection from above would look like a square instead of a B. Likewise, even if you had 3 views, it still won't be correct along some other direction, even though it may be "right" along those particular, exact three projection angles. That's why CT uses hundreds of projections instead of only 3.

Sign in to comment.


Matt J
Matt J on 23 Jan 2022
For a general object, no it's not possible. For an object with some known structure, like a sphere, then yes: measure the radius of the projection and you're done.

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!