0

あなたの助けが必要です。ステレオペアを使用して、ステレオキャリブレーション、整流を実装しました。私はかなり合理的な視差画像を持っています。私が直面している問題は cvReprojectImageTo3D にあります。そして、正しい方法で修正しました。宣言は以下の通り

 CvMat* disp = cvCreateMat( imageSize.height, imageSize.width, CV_16S );
 CvMat* vdisp = cvCreateMat( imageSize.height,imageSize.width, CV_8U );
 CvMat* Image3D = cvCreateMat(imageSize.height, imageSize.width, CV_32FC3);   

disp は、ステレオ ペアに対して取得された視差画像です。そして、Image3D の showimage コマンドを実行すると、カラフルな分割が取得されます。私の疑問は、なぜそうなのかということです。
結果写真のリンクを以下に添付します

https://plus.google.com/photos/110965556771924534380/albums/5745356738809417329/5748680803335389906

私が持っているもう1つの疑問は、このimage3Dがどのように保存されているかです。CV_32FC3 は、最初のチャネルが x 値を与え、2 番目が y を与え、3 番目が z を与えることを意味しますか?

4

2 に答える 2

1

はい、「視差と同じサイズの3チャンネル浮動小数点画像を出力します。_3dImage(x、y)の各要素には、視差マップから計算された点(x、y)の3D座標が含まれます。」

つまり、各ピクセル座標でのフローティングポインティングx、y、zです。

http://docs.opencv.org/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.htmlを参照してください

于 2012-06-01T16:35:53.560 に答える
0

次のようなことを試しましたか

cvSave("depthmeasure.txt", Image3D);

于 2013-05-02T20:37:41.623 に答える