Qマトリックスを取得するために、ステレオキャリブレーションとステレオレクティファイを使用しています。これを cv.ReprojectImageto3D への入力として与え、深度マップを取得します。しかし、結果を表示しようとすると、多くの値が無限大として計算されます。
再投影する前に、何かを変更またはスケーリングする必要がありますか? そして、得られる結果はピクセル単位ですか?
(roi1,roi2) = cv.StereoRectify(camMatrix1, camMatrix2, d1, d2,(320,240), r, t, r1, r2, p1, p2, q, cv.CV_CALIB_ZERO_DISPARITY, -1, (0, 0))
np.savetxt('Q_mat.txt',q)
disparity = getDisparity(img_r, img_l, "BM")
disp = cv.fromarray(disparity)
Image = cv.CreateMat(disp.rows, disp.cols, cv.CV_32FC3)
Q = np.loadtxt('Q_mat.txt')
Q = np.reshape(Q,(4,4))
Q1 = cv.fromarray(Q)
cv.ReprojectImageTo3D(disp, Image, Q1, 0)
画像へのリンク: http://i43.tinypic.com/2gtau5s.png
事前にどうもありがとう