使用OpenCV和Raspicam的RaspberryPi c++应用程序编译问题



使用下面的代码,我试图用OpenCV + Raspicam在c++中创建一个应用程序。这个应用程序应该从连接到我的Pi的RasPi相机模型实时流视频到Xwindow。

我得到以下错误编译:

videofeed.cpp: In function ‘int main(int, char**)’:
videofeed.cpp:36:37: error: ‘cv::imread’ is not a member of ‘raspicam::RaspiCam_Cv’

我该如何补救?

#include "opencv2/highgui/highgui.hpp"
#include "opencv2/videoio.hpp"
#include <iostream>
#include </home/pi/raspicam-0.1.3/src/raspicam_cv.h>
using namespace std; 

int main ( int argc,char **argv ) {
    raspicam::RaspiCam_Cv Camera;
    cv::Mat image;
    int nCount=100;
    //set camera params
    Camera.set( CV_CAP_PROP_FORMAT, CV_8UC1 );
    //Open camera
    cout<<"Opening Camera..."<<endl;
    if (!Camera.open())// if not success, exit program
    {
        cout << "Cannot open the video cam" << endl;
        return -1;
    }
   double dWidth = Camera.get(CV_CAP_PROP_FRAME_WIDTH); //get the width of frames o$
   double dHeight = Camera.get(CV_CAP_PROP_FRAME_HEIGHT); //get the height of frame$
    cout << "Frame size : " << dWidth << " x " << dHeight << endl;
   cv::namedWindow("MyVideo",CV_WINDOW_AUTOSIZE); //create a window called "MyVideo"
    while (1)
    {
        cv::Mat frame;
        bool bSuccess =  Camera.cv::imread(frame);  // get a new frame from camera
         if (!bSuccess) //if not success, break loop
        {
             cout << "Cannot read a frame from video stream" << endl;
              break;
        }
   cv::imshow("MyVideo", frame); //show the frame in "MyVideo" window
        if (cv::waitKey(30) == 27) //wait for 'esc' key press for 30ms. If 'esc' ke$
       {
            cout << "esc key is pressed by user" << endl;
            break; 
       }
    }
    return 0;
}
///////////////////////////////////////////////////////////////////////////////////

bool bSuccess = Camera.cv::imread(frame);是一个错误,在raspicam::RaspiCam_Cv中没有imread函数。如果您想要grub一个框架,您可以使用grub函数,然后使用retrieve。例如:

Mat img;
camera.grab();
camera.retrieve(img);

你可以看到声明:

/**
 * Grabs the next frame from video file or capturing device.
 */
bool grab();
/**
*Decodes and returns the grabbed video frame.
 */
void retrieve ( cv::Mat& image );

也可以在:https://github.com/cedricve/raspicam

中找到示例

相关内容

  • 没有找到相关文章

最新更新