0

人工深度画像でステレオ マッチングを機能させようとしています。マッチングは良好 (オクルージョンなし) のように見えますが、反転しています (黒 = 近い、白 = 遠い)。

int main()
{
    Mat img1, img2, g1, g2;
    Mat disp, disp8;
    img1 = imread("W:/GoogleDrive/UDK/Croped_left/4.png");
    img2 = imread("W:/GoogleDrive/UDK/Croped_left/1.png");

    cvtColor(img1, g1, CV_BGR2GRAY);
    cvtColor(img2, g2, CV_BGR2GRAY);

    StereoBM sbm;
    sbm.state->SADWindowSize = 9;
    sbm.state->numberOfDisparities = 16;
    sbm.state->preFilterSize = 5;
    sbm.state->preFilterCap = 61;
    sbm.state->minDisparity = -39;
    sbm.state->textureThreshold = 507;
    sbm.state->uniquenessRatio = 0;
    sbm.state->speckleWindowSize = 0;
    sbm.state->speckleRange = 8;
    sbm.state->disp12MaxDiff = 1;
    sbm(g1, g2, disp);

    normalize(disp, disp8, 0, 255, CV_MINMAX, CV_8U);

    imshow("left", img1);
    imshow("right", img2);
    imshow("disp", disp8);

    waitKey(0);

    return(0);
}

これらは私が使用している画像です4.pngおよび1.png

そして、私が得る出力はこれです:ここに画像の説明を入力

私は何か間違ったことをしていますか?ありがとう

4

2 に答える 2

0

左右を間違えたのでしょう。4.png は right/img2 で、1.png left/img1 です。(右側のオブジェクトの写真は左側のカメラから見たもので、その逆も同様です。)

于 2016-03-14T01:02:03.360 に答える