かなりの今更感はさておき、OpenCV でステレオ画像による深度計算をやっています。
環境
- LMDE2 64bit
- OpenCV2
- Python2.7
スクリプト
入力画像と深度計算の結果
cv2.StereoSGBM()
のパラメータをいじくり回したり、単眼のスマホカメラで撮影した入力画像の位置合わせをしたりしていると、それなりに深度が出るようになりました。
PCD 化
PCL(Point Cloud Library)のフォーマットである PCD 形式に変換し、pcl_viewer で確認します。
スクリプトのPCD化部分次のとおり。
pcl_viewer で開いたところ。
数百万円するレーザー計測器には到底及ばないものの、それなりにカラーボックスやその上に置いている箱の形状が出てますね! もっとフワフワな点群になるかと思っていたので、ちょっと予想外でした。
参考
- OpenCV: Camera Calibration and 3D Reconstruction
- 3D reconstruction from stereo images in Python
- Producing 3D point clouds with a stereo camera in OpenCV | Stackable
- OpenCV Stereo Matching の性能比較 1 – Daily Tech Blog
- Python+OpenCVでのカメラキャリブレーション有りステレオビジョンのサンプルコードなど – 蟹者
- Stereo Matching/Calibration Help – OpenCV Q&A Forum
- OpenCV、画像処理、コンピュータビジョン、3D点群処理、動いたやつをまとめていく。 – Qiita
- OpenCVのバージョン3が正式リリースされたぞ
[…] テレオ画像による深度計算をやっています。 昨晩、スマホの単眼カメラで撮影した2枚のステレオ画像の深度計算で割と良さそうな結果が出たので、Amazonで安いWebカメラを二つ注文。早速 […]
[…] 前々回と前回の OpenCV まわりに関連して、とうとう Kinect を購入しました。Kinect for Windows じゃなく 360 でもとりあえずは研究に使えるらしいし、ドライバや SDK が厳格そうな Windows で開発 […]
[…] 先週からスマホカメラ、USBカメラ×2台、Kinect 360 と深度マップ撮影をやっていて、とうとう Kinect One の購入に至ったので書いておきます。 […]
[…] 前日より引き続き、OpenCV でステレオ画像による深度計算をやっています。 昨晩、スマホの単眼カメラで撮影した2枚のステレオ画像の深度計算で割と…ので、Amazonで安いWebカメラを二つ注文。早速届いたので遊んでみます。 […]