Raspicam免费资源

时间:2016-09-28 00:51:43

标签: c++ raspberry-pi2

我正在尝试使用http://www.uco.es/investiga/grupos/ava/node/40

中的raspicam C ++库进行基本图像捕获

图像捕获通常有效,但似乎我无法在程序结束后再次运行程序,或者它挂在grab_retrieve上。系统需要重启。我的猜测是,某些东西没有释放资源,但我不确定如何诊断它。 我怎样才能让这个实用程序自行清理?

代码如下。我也欢迎其他建议,因为我不依赖于这个图书馆。

#include <iostream>
#include <fstream>
#include <unistd.h>
#include <stdio.h>
#include "../raspicam-0.1.3/src/raspicam.h"
#include "../raspicam-0.1.3/src/raspicam_still.h"
#include "../raspicam-0.1.3/src/raspicamtypes.h"
using namespace std;

int main ( int argc, char *argv[] ) {
  raspicam::RaspiCam_Still still;
  still.setEncoding ( raspicam::RASPICAM_ENCODING_JPEG );
  int length=still.getImageBufferSize();
  unsigned char *data=new unsigned char[length];

  cout<<"Capturing image at size " << length <<endl;
  if(!still.grab_retrieve(data, length)) {
    cerr<<"Error in grab"<<endl;
    return -1;
  }
  still.release();
  cout<< "Got it" << endl;
  ofstream file ( "picture.jpg",ios::binary );
  file.write ( ( char* ) data,   length );
  delete[] data;
  return 0;
}

0 个答案:

没有答案