OpenCV で StereoBM を使用して、画像のペアから視差マップを抽出しようとしています。以下の視差マップの質の悪さを無視すると、パラメーター ndisparities に対応する左側に多数の黒い列があることがわかります。ndisparities は、StereoBM がどれだけ「遠く」離れて対応を検索できるかを伝えるだけだと思いました。この動作の原因は何ですか? 結果の深度マップの幅を制限しているように見えますが、その理由はわかりません。
ここにステレオ ペアが表示され、下に私のコードが表示されます。ご指摘ありがとうございます。
Mat Limg = imread("left.jpg", CV_LOAD_IMAGE_GRAYSCALE);
Mat Rimg = imread("right.jpg", CV_LOAD_IMAGE_GRAYSCALE);
Mat disp(Limg.size(), CV_16SC1), disp8U;
int ndisparities = 512;
StereoBM SBM(StereoBM::BASIC_PRESET, ndisparities , 11);
SBM(Limg, Rimg, disp, CV_16S);
double minVal, maxVal;
minMaxLoc( disp, &minVal, &maxVal );
disp.convertTo( disp8U, CV_8UC1, 255/(maxVal - minVal));
imshow("disparity", disp8U)