2

私はRaspberryPiにOpenCVを正常にインストールし、基本的なCおよびC ++コードを使用して、いくつかの単純なWebカメラストリーミングやライブキャニーエッジ検出などをいじくり回しています。

ただし、使用している2つのWebカメラで問題が発生しています。最初の、私が座っていた本当に基本的で安価なLogitechは問題なく動作しますが、画質には多くの要望があります。しかし、Logitech 510cカメラに切り替えると、画像ははるかに良くなりますが、Piがフリーズします。

むしろ、ストリーミングプログラムは引き続き正常に実行されますが、プログラムを終了できません。RaspberryPiはキーボードとマウスへの応答を停止し、終了する唯一の方法はRaspberryPiのプラグを抜くことです。コードの例を次に示します。

#include <cv.h>
#include <highgui.h>
#include <stdio.h>

int main(){

  int c, i, j;

  //Capture frame from camera
  CvCapture* capture = cvCaptureFromCAM(CV_CAP_ANY);
  if(!capture){
    fprintf(stderr, "Error: capture is NULL \n");
    getchar();
    return -1;
  }

  //Set resolution of capture
  cvSetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH, 256);
  cvSetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT, 192);

  //Create window for display
  cvNamedWindow("canny");

  while(true){

    //Find/mark edges using canny
    IplImage* frame = cvQueryFrame(capture);
    IplImage* grey = cvCreateImage(cvGetSize(frame), 8, 1);
    cvCvtColor(frame, grey, CV_RGB2GRAY);
    IplImage* frame2 = cvCreateImage(cvSize(grey->width+6, grey->height+6), grey->depth, grey->nChannels);

    CvPoint offset = cvPoint(3,3);
    cvCopyMakeBorder(grey, frame2, offset, IPL_BORDER_REPLICATE, cvScalarAll(0));
    IplImage* edges = cvCreateImage(cvGetSize(frame2), IPL_DEPTH_8U, frame2->nChannels);
    cvCanny(frame2, edges, 4900, 39200, 7);

    cvShowImage("canny", edges);

    //Wait for a keypress
    int c = cvWaitKey(10);
    if (c!=-1)
        break;
  } //End while

  cvReleaseCapture (&capture);
  cvDestroyWindow("canny");
  return 0;
} //End main

コードに問題がありますか?別のウェブカメラを使用する必要がありますか?RaspberryPiをオーバークロックしました。より高品質のカメラでストリームを処理できないのでしょうか。

4

3 に答える 3

1

RaspberryPiはUSBポートで最大700mAの電流を制限していると思います。したがって、カメラが700 mA以下で動作する場合は、正常に動作するはずです。そうでない場合は、電源付きUSBハブを購入する必要があります。私は700mAの電流定格を持つLogitechC170カメラを持っていますが、電源付きのUSBハブがなくても正常に動作します。

OpenCVをRaspberryPiにインストールしてC/C ++で使用できるようにした方法を知りたいのですが、IDEを使用してプログラムを作成する場合は、どのように行うのかも知りたいです。これを行う方法のチュートリアルを検索しましたが、Pythonで使用するためにOpenCVをインストールする方法のチュートリアルしか見つかりませんでした。Pythonを試したので、C / C ++を使用する必要がありますが、画像処理は非常に遅いと思います。Debian 6.0(Squeeze)OSを使用しています。

于 2013-12-29T16:53:55.360 に答える
0

Raspberry Piのビデオカメラには、USB処理にまで及ぶ既知の問題があります。これまでのほとんどの修正はカメラに影響を与えていませんが、最新のカーネルへのアップグレードを試すことができます。

于 2013-03-25T00:01:17.290 に答える
0

その理由は、カメラがより多くの電流を引き込み、RaspberryPiが応答しなくなったためである可能性があります。カメラの定格電流を確認し、定格電流が100mA以下のカメラを試してみてください。

于 2013-04-28T14:49:24.660 に答える