OpenCV、画像処理、コンピュータビジョン、3D点群処理、動いたやつをまとめていく。

# 動作環境
- PC (Windows8.1, RAM 8GB, 2 cores @ 2.1GHz)
- Visual Studio 2013
- OpenCV2.4.9以上
- Kinect for WIndows SDK v1.8
- Kinect for Windows Developer Toolkit v1.8.0
- PCL 1.7.2

# 3D点群処理
## Viz Transformations (C++, OpenCV 2.4.x)
- OpenCVの[サンプルコード](http://docs.opencv.org/trunk/doc/tutorials/viz/transformations/transformations.html#transformations)
- [ソースコード](https://github.com/SatoshiRobatoFujimoto/viz_transformations)
- [マイ記事](http://qiita.com/SatoshiRobatoFujimoto/items/a91a60bb511070164b53)

![viz10.png](https://qiita-image-store.s3.amazonaws.com/0/63863/3dc0dd78-5576-1f0c-5e6f-bcc7615fb0f8.png)


# SLAM
## RGB-D Odometry（C++, OpenCV 2.4.x）
- OpenCVの[サンプルコード](https://github.com/kipr/opencv/blob/master/samples/cpp/rgbdodometry.cpp)

opencv249\sources\samples\cpp\rgbdodometryのなかにサンプルのRGB-D画像セットがある。
カメラ１(image_00002)からカメラ０(image_00000)へ変換後のRGB-D画像を示す。

![odo.png](https://qiita-image-store.s3.amazonaws.com/0/63863/52940aea-42dd-d007-182d-6a4b8ed0a637.png)

デバッグする際の引数の設定例（プロパティからDebugging）

~~~
C:\opencv249\sources\samples\cpp\rgbdodometry\image_00000.png C:\opencv249\sources\samples\cpp\rgbdodometry\depth_00000.png C:\opencv249\sources\samples\cpp\rgbdodometry\image_00002.png C:\opencv249\sources\samples\cpp\rgbdodometry\depth_00002.png -rbm
~~~

## RTAB-Map(C++, OpenCV 2.4.x, PCL)
- [ソースコード](http://introlab.github.io/rtabmap/)
- [マイ記事](http://qiita.com/SatoshiRobatoFujimoto/items/89226a75817958b58a2f)
- IROS2014 Microsoft Kinect Challengeで優勝

![150130220114787.png](https://qiita-image-store.s3.amazonaws.com/0/63863/ad1d0cf8-5dde-5cca-5d08-2e7c64fbb5e5.png)
![snapshot00.png](https://qiita-image-store.s3.amazonaws.com/0/63863/f530b6c7-c272-7c85-6e68-9da012bd5765.png)

## ATAM(C++, OpenCV 3.0, cvsba, LAPACK)
- [ソースコード](https://github.com/CVfAR/ATAM)
- ISMAR 2015 tracking competition vSLAMのサンプルプログラム
![ATAM.png](https://qiita-image-store.s3.amazonaws.com/0/63863/99207450-3c98-b0d9-8b66-071144f9d63c.png)

# Kinect v2
## KinectFusion(C++, OpenCV 2.4.x)
- [ソースコード](https://github.com/UnaNancyOwen/Kinect2Sample)
- [3次元点群と自己位置を保存するソースコード](https://github.com/SatoshiRobatoFujimoto/KinectFusionV2)
- [マイ記事](http://qiita.com/SatoshiRobatoFujimoto/items/68da949478dd86a99905)
![kinectfusionv2.png](https://qiita-image-store.s3.amazonaws.com/0/63863/65ac71c8-ca85-52bb-180a-bff1f0fd28eb.png)

# Kinect v1
## KinectFusion (C++, OpenCV 2.4.x)
- [ソースコード](https://github.com/UnaNancyOwen/KinectBook2)
- [XBOX360で動作確認、自己位置を保存するソースコード](https://github.com/SatoshiRobatoFujimoto/KinectFusionV1)
- [マイ記事](http://qiita.com/SatoshiRobatoFujimoto/items/bddefc89456c0716b00a)
![kinectfusion.png](https://qiita-image-store.s3.amazonaws.com/0/63863/29e3b0ff-6220-8e55-d85b-0a98b8e0014e.png)

# フィルタリング
## Real-Time Depth Map Refinement (C++, OpenCV 2.4.x)　
- [ソースコード](https://github.com/norishigefukushima/WeightedJointBilateralFilter)
- [ページ](http://nma.web.nitech.ac.jp/fukushima/research/weightedjointbilateralfilter.html)
![WeightedJointBilateralFilter.png](https://qiita-image-store.s3.amazonaws.com/0/63863/7a8c0a7b-43b9-99e5-8926-3b07efe24f5a.png)

# セグメンテーション
## SLIC Superpixel (C++, OpenCV 2.4.x)
- [ソースコード](https://github.com/PSMM/SLIC-Superpixels)
![WIN_20150126_234112SP.jpg](https://qiita-image-store.s3.amazonaws.com/0/63863/8f3aeeaf-2186-2bb9-a448-415647fe97c9.jpeg)

## SLICO (C++)
- [ソースコード](http://ivrg.epfl.ch/research/superpixels)
![WIN_20150126_234112_SLICO.jpg](https://qiita-image-store.s3.amazonaws.com/0/63863/ecc672d5-a99d-a64c-8552-e6f9ffbef7b4.jpeg)

# ステレオ
## rSGM (C++)
- [ソースコード](http://userpage.fu-berlin.de/spangenb/)
- [ベンチマーク](http://www.cvlibs.net/datasets/kitti/)
- [ステレオ画像シーケンス](http://hci.iwr.uni-heidelberg.de/Static/challenge2012/)

![disp.jpg](https://qiita-image-store.s3.amazonaws.com/0/63863/f7732081-5900-674c-3097-e7d5f34f5118.jpeg)

pgm画像をrSGM/runtime/image以下に置き、プロパティ→Debuggingの設定

~~~
..\runtime\images\000000_0.pgm ..\runtime\images\000000_1.pgm ..\runtime\images\disp.pgm 16 0
~~~

## LIBELAS (C++)
- [ソースコード](http://www.rainsoft.de/software/libelas.html)
![urban1_left_disp.jpg](https://qiita-image-store.s3.amazonaws.com/0/63863/14ba944e-02ed-9633-82b6-0de5e3e5841f.jpeg)

## SGBM (C++, OpenCV 2.4.x)
- [ソースコード](https://github.com/Itseez/opencv/blob/master/samples/cpp/stereo_match.cpp)
- C:\opencv2410\sources\samples\cppの中にstereo_match.cppがあるので、それをプロジェクトにコピペ。
- 同様にtsukuba_l.png、 tsukuba_r.pngをプロジェクトの下にコピペ
- Debuggingの設定で引数を次のように指定

~~~
tsukuba_l.png tsukuba_r.png --algorithm=sgbm
~~~

![disp_sgbm.png](https://qiita-image-store.s3.amazonaws.com/0/63863/d007d910-2fd3-0c41-2059-088a2ea50aad.png)