Emgu.CV.StereoSGBM.FindStereoCorrespondence C# (CSharp) Method

FindStereoCorrespondence() public method

Computes disparity map for the input rectified stereo pair.
Invalid pixels (for which disparity can not be computed) are set to (state->minDisparity-1)*16
public FindStereoCorrespondence ( Byte>.Image left, Byte>.Image right, Int16>.Image disparity ) : void
left Byte>.Image The left single-channel, 8-bit image
right Byte>.Image The right image of the same size and the same type
disparity Int16>.Image The output single-channel 16-bit signed disparity map of the same size as input images. Its elements will be the computed disparities, multiplied by 16 and rounded to integer's
return void
        public void FindStereoCorrespondence(Image<Gray, Byte> left, Image<Gray, Byte> right, Image<Gray, Int16> disparity)
        {
            CvInvoke.CvStereoSGBMFindCorrespondence(_ptr, left, right, disparity);
        }

Usage Example

Exemplo n.º 1
0
        public Image<Gray, short> GetDispMapCPU(Image<Gray, byte> leftImg, Image<Gray, byte> rightImg, DispMapFounderParameters parameters)
        {
            var ap = (StereoSGBMDispMapFounderParameters)parameters;

            using (StereoSGBM sgbm = new StereoSGBM(
                minDisparity: ap.MinDisparity,
                numDisparities: ap.NumDisparities,
                blockSize: ap.BlockSize,
                p1: ap.P1,
                p2: ap.P2,
                disp12MaxDiff: ap.Disp12MaxDiff,
                preFilterCap: ap.PreFilterCap,
                uniquenessRatio: ap.UniquenessRatio,
                speckleWindowSize: ap.SpeckleWindowSize,
                speckleRange: ap.SpeckleRange,
                mode: ap.Mode))
            //using (var leftProcessImg = leftImg.Copy())
            //using (var rightProcessImg = rightImg.Copy())
            {
                var leftProcessImg = leftImg;
                var rightProcessImg = rightImg;
                var dispMap = new Image<Gray, short>(leftProcessImg.Size);
                //TODO: dirty hack
                try
                {
                    sgbm.FindStereoCorrespondence(leftProcessImg, rightProcessImg, dispMap);
                }
                catch
                {

                }
                return dispMap;
            }
        }
All Usage Examples Of Emgu.CV.StereoSGBM::FindStereoCorrespondence