Home > other >  About reprojectimageto3d () function to get point cloud abnormal problem
About reprojectimageto3d () function to get point cloud abnormal problem

Time:09-18

Specific functions as follows: disp is parallax figure, I obtained the Q is a correction before stereo,
 
ReprojectImageTo3D (disp, xyz, Q, true);
Xyz *=1.6;
For (int y=0; Y & lt; Xyz. Rows; + + y)
{
For (int x=0; X & lt; Xyz. Cols; + + x)
{
CV: : Point3f point=xyz. AtPoint. Y=- point. Y;
Xyz. At}
}
CV: : destroyAllWindows ();
cout SaveXYZ (point_cloud_filename, xyz);

The original image is

I only use method is opencv own SGBM, can get parallax figure as follows:

There are two problems with me,
First, I got the x y z coordinates are small, at around 10, so get the 3 d coordinate unit is what? After I understood multiplied by 1.6 units should be cm, obviously feel the coordinates wrong,
Second, I use meshlab display 3 d coordinates of point cloud is ray (or conical?) What went wrong? Parallax effect more bad because of me, I can through what ways to improve, ask the great spirit are recommended? Or calibration problem?
Hope someone can help me ah ~ thank you very much

CodePudding user response:

His ~

CodePudding user response:

Hello, I point cloud is also one of the effects of the radial cone that you solved? Could you please try to contact with me? 1017361768 @qq.com, thank you very much,

CodePudding user response:

The cone is correct

CodePudding user response:

Will reprojectimageto3d () get multiplied by 2.8346 is the result of the actual coordinates (1 pixel material 2.8346 cm)
  • Related