2011-04-26 66 views
1

我正嘗試使用OpenCV示例文件從立體配置執行3D表面重建。我從2個網絡攝像機創建了一個立體相機。 我已經使用stereo_calib.cpp(https://code.ros.org/trac/opencv/browser/trunk/opencv/samples/cpp/stereo_calib.cpp?rev=4086)獲得了校準參數,並使用stereo_match.cpp(https://code.ros.org/trac/opencv/browser/trunk/opencv/samples/c/stereo_match.cpp?rev=2614)生成了一個點雲。用MeshLab打開的結果點雲根本不像原始場景(http://img707.imageshack.us/i/snapshot01u.png/)。使用發貨的圖像和示例的OpenCV 3D重建

我在這裏錯過了什麼?

步驟來重新創建:

  1. stereo_calib.cpp(上,其中圖像是相同的文件夾中,不帶參數則認爲缺省)

  2. stereo_match left01.jpg right01.jpg -i intrinsics.yml -e extrinsics.yml -p cloud.asc

  3. 進口上MeshLab

01 cloud.asc

謝謝

+0

嗨@蘇珊,你有沒有想過這個問題?,現在我正在處理這兩個樣本。 – 2013-01-23 07:15:12

回答

1

描述和你發佈的圖片並沒有提供很多信息。但從我的3D重建經驗看來,外在或內在參數是不正確的。

因此,您的校準出了問題。您必須獲得攝像頭和攝像頭之間外在固有的校準。

  1. 外部參數代表相機之間的相對位置和方向。因此,如果它們不正確,任何事情都可能發生,大多數點雲非常退化。
  2. 內在參數描述如何將3D點投影到二維圖像上。因此,如果你有不正確的內部參數,你的點雲就會被線性變換(假設有一個可忽略的徑向/切向失真或高階失真)。

有很多關於3D重建和立體聲的好文獻。其中最重要的一本是Richard Hartley和Andrew Zisserman的書「Multiple View Geometry」。