2014年6月29日日曜日

ラズベリーパイ+opencvでUSBカメラ接続(3)- 2台のカメラを接続


会社で使いたいネタがあって、ラズパイ1台で複数のカメラを表示させた場合にきちんと動くのかを検証した。まずは2台でトライ。
 使用デバイス
・USBハブ(ELECOM U2H-EG3SBK)
・USBカメラ1  USBなんでもマイクロスコープ
・USBカメラ2   BUFFALO SW20K04H

ソースは単純に1台のカメラ表示用のプログラムで必要な個所を2列しただけ。。

---------------------------------------------------------------------------------------

#include<stdio.h>
#include<highgui.h>
int main(){

  CvCapture *videoCapture1=cvCreateCameraCapture(0);
  CvCapture *videoCapture2=cvCreateCameraCapture(1);

  if(videoCapture1==NULL)
  return -1;
  char windowName1[]="camera1";
  char windowName2[]="camera2";
  cvNamedWindow(windowName1,CV_WINDOW_AUTOSIZE);
  cvNamedWindow(windowName2,CV_WINDOW_AUTOSIZE);

  while(cvWaitKey(1)==-1){
  IplImage *image1=cvQueryFrame(videoCapture1);
  IplImage *image2=cvQueryFrame(videoCapture2);

  cvShowImage(windowName1,image1);
  cvShowImage(windowName2,image2);
  }
  cvReleaseCapture(&videoCapture1);
  cvReleaseCapture(&videoCapture2);

  cvDestroyWindow(windowName1);
  cvDestroyWindow(windowName2);

return 0;
}

-----Makefile----------------------------------------------------------------------------------
CXX = g++
LDFLAGS = -lopencv_legacy -lopencv_highgui -lopencv_core -lopencv_ml -lopencv_video -lopencv_imgproc -lopencv_calib3d -lopencv_objdetect -L/usr/lib
CPPFLAGS = -O3 -I/usr/include/opencv -I/usr/include/opencv2
all : camera3
---------------------------------------------------------------------------------------


一応動作はするが、さすがにカメラの表示速度が遅い。
ここが改善できるのか。。。う~ん。


0 件のコメント:

コメントを投稿