Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

cpu stereoBM runs on output of Sobel operator applied to the input images, while cuda::stereoBM uses the original images.

Block matching is sensitive to illumination change. It might be the reason why cuda::stereoBM returns poor disparity map. Edge information is robust to these changes, so stereoBM output a better disparity map.

cpu stereoBM runs on output takes rhe result of Sobel operator applied to the input images, while cuda::stereoBM uses the original images.

Block matching is sensitive to illumination change. It might be the reason why cuda::stereoBM returns poor disparity map. Edge information is robust to these changes, so stereoBM output a better disparity map.

cpu stereoBM takes rhe result of Sobel operator applied to the input images, while cuda::stereoBM uses the original images.

Block matching is sensitive to illumination change. changes. It might be the reason why cuda::stereoBM returns poor disparity map. Edge information is robust to these changes, so stereoBM output outputs a better disparity map.

cpu stereoBM takes rhe the result of Sobel operator applied to the input images, while cuda::stereoBM uses the original images.

Block matching is sensitive to illumination changes. It might be the reason why cuda::stereoBM returns poor disparity map. Edge information is robust to these changes, so stereoBM outputs a better disparity map.

cpu stereoBM takes the result of Sobel operator applied to the input images, while cuda::stereoBM uses the original images.

Block matching is sensitive to illumination changes. It might be the reason why cuda::stereoBM returns poor disparity map. Edge information is robust to these changes, so stereoBM outputs a better disparity map.

UPDATE

It appears I was wrong when I said that cuda::stereoBM did not use Sobel operator. Actually, it does apply the operator if preset_ (use setPreFilterType) is set to 1, but it is turned off by the default. This is the case in the code above. BTW, preFilterCap_, used in Sobel, has the same default value in cpu and cuda stereoBM

As was mentioned by Der Luffmensch, cuda::stereoBM does not work with negative and subpixel disparities.

One more difference is that invalid and filtered out disparities are set to zero, but not to a value out of the disparity range as done in cpu stereoBM.