500円で売ってる3D web CamをOpenCVで使おうとしたけどダメだった話

概要

amazonで500円くらいで買える左右二個のカメラがセットになったwebcamがあって、 これは非常に安いのでステレオ系のOpenCVのテストに持って来いではないか!
(なんと言ってもほぼ確実に基線上に配置されているのでエピポーラ線がそのまま水平だ!) http://www.amazon.co.jp/dp/B00HYPPVTY/ と思い、購入したが甘くなかった。社会は厳しい。

カメラ詳細

普通の使い方のレビューは、こういうYoutubeのレビューを見てもらうとして


3Dwebカメラ?? (DS-3DW300の紹介) - YouTube 付属の専用ソフトウェアでは

f:id:izm_11:20140514001826p:plain

こんな風に見える。良さそうである、貧者のOvrvisionになりそうである。

僕がやりたいのはOpenCVで左右の絵を独立に取ることなので。

cv::VideoCapture cam1;
cv::VideoCapture cam2;

cam1.open(0);
cam2.open(1);
if(cam1.isOpened() && cam2.isOpened()){
//やった!!!左右両方とも絵が撮れる!
std::cout<<"success"<<std::endl;
}
else{
//なんだこのクソカメラ…
std::cout<<"fail"<<std::endl;
}

と言う感じに試したら案の定右目の絵しか取れず、左目は見えなかった。 例えば上記コードで簡単に両目が撮れるOvrvisionはWindowsからは

f:id:izm_11:20140514001840p:plain

こう見えているが この3D-webcam

f:id:izm_11:20140514001836p:plain

こう見えている。うまくいかない訳だ。
一応ちょっと他の方法も試したので以下にメモを残す。
誰か興味がある方にとってハックの参考になればうれしいです。
(後は任せた…のです)

試して分かった事

directshow

f:id:izm_11:20140514001831p:plain

videoInput library

listDevice()でも1個しかないよ!と言われる

OEM元

CHUSEI EG-1001
http://www.chusei.cn/en/pro_bigpic.asp?id=1522&Big_Class=3&Small_Class=47

使用チップ

  • USB2.0チップ:m5608U
  • イメージングチップ:a14m3d
  • VID_PID=VID_18E3&PID_503