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.
2 | No.2 Revision |
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.
3 | No.3 Revision |
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.
4 | No.4 Revision |
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.
5 | No.5 Revision |
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.