I used cvStereoFindCorrespondenceGC() in openCV to produce a disparity map fr开发者_开发知识库om the famous tsukaba image. But I notice that it lacks 3D features (eg the lamp is flat instead of slightly curve). How to approach this problem? What was lacking in the present algorithm?
The disparity map only contains a limited amount of depth information (z axis, eg pointing into your screen).
You need to look at LIDAR, or similar Time Of Flight methods in order to extract/scan/reconstruct a 3d scene.
Having said that you can try the Sentience Project
That uses 'A 3D volumetric perception system for mobile robots' which is rooted in stereo matching.
You might also want to try something like the Structure from Motion approach. You take many photos from different angles as you move around the object, then calculate the location of pixels which occur in at least 3 images. These can produce very good models, getting closer to the LiDAR equivalent.
e.g. MS Photosynth (free), or AGISoft Photoscan (working trial but you can't save/export models)
For an open source version check out Insight 3D http://insight3d.sourceforge.net/
精彩评论