目录
1.1 基本操作
1.2 开启相机程序
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
#include <FlyCapture2.h>
using namespace std;
using namespace cv;
using namespace FlyCapture2;
int main()
{
Error error;
Camera camera;
CameraInfo camInfo;
/*连接相机*/
error = camera.Connect(0);
if (error != PGRERROR_OK)
{
cout << "Failed to connect to camera" << endl;
system("pause");
return false;
}
/*获取相机信息*/
error = camera.GetCameraInfo(&camInfo);
if (error != PGRERROR_OK)
{
cout << "Failed to get camera info from camera" << endl;
return false;
}
//cout << camInfo.vendorName << " "<< camInfo.modelName << " "<< camInfo.serialNumber << endl;//打出相机信息
/*开启相机*/
error = camera.StartCapture();
if (error == PGRERROR_ISOCH_BANDWIDTH_EXCEEDED)
{
cout << "Bandwidth exceeded" << endl;
return false;
}
else if (error != PGRERROR_OK)
{
cout << "Failed to start image capture" << endl;
return false;
}
/*读取拍摄内容*/
Image rawImage;
Image rgbImage;
while (1)
{
/*读取拍摄内容*/
Error error = camera.RetrieveBuffer(&rawImage);
if (error != PGRERROR_OK)
{
cout << "capture error" << endl;
continue;
}
rawImage.Convert(PIXEL_FORMAT_BGR, &rgbImage);
unsigned int rowBytes = (double)rgbImage.GetReceivedDataSize() / (double)rgbImage.GetRows();
Mat frame = Mat(rgbImage.GetRows(), rgbImage.GetCols(), CV_8UC3, rgbImage.GetData(), rowBytes);
resize(frame, frame, Size(0.6*frame.cols, 0.6*frame.rows));
imshow("显示", frame); //srcImage = frame
waitKey(1);
}
return 0;
}