openFrameworksでWebカメラを自動的に接続する

oFで自動的に接続するシリーズ。

ofVideoGrabberで適当にデバイスの数字とかでやってるとノートPC内蔵のWebカメラ起動しちゃったりするんだけど、それを避けて常に特定のカメラを開けるようにする。避け方は簡単でWebカメラの名前(=ofVideoDeviceのdeviceName)を見て開けばOK。今回はロジクールのC920ってカメラだからC920って名前があるやつを開くだけ。

#define CAM_WIDTH 1296
#define CAM_HEIGHT 729

ofVideoGrabber cam;

void HogeClass::setup(){
    if(cam.isInitialized() == false){
        cout << "Initalizeing cam" << endl;
        int index = 0;
        for(int i=0; i<cam.listDevices().size(); i++){
            ofVideoDevice& device = cam.listDevices().at(i);
            cout << i  << ":" << device.deviceName << ":" << endl;
            if(device.deviceName.find("C920") > 0){
                index = i;
            }
        }
        cam.setDeviceID(index);
        cam.setVerbose(true);
        cam.initGrabber(CAM_WIDTH, CAM_HEIGHT);
        cout << cam.getWidth() << "," << cam.getHeight() << endl;
        
        return;
    }
}

CAM_WIDTHとCAM_HEIGHTの数字はC920における秘伝のタレ。良いカメラでっせ。

Logicool ロジクール HD プロ ウェブカム c920r

Logicool ロジクール HD プロ ウェブカム c920r