Skip to content

Instantly share code, notes, and snippets.

@kevinhughes27
Last active January 24, 2024 19:39
Show Gist options
  • Save kevinhughes27/5543668 to your computer and use it in GitHub Desktop.
Save kevinhughes27/5543668 to your computer and use it in GitHub Desktop.
A simple program showing how to capture from a Point Grey Research Camera and display the image using OpenCV
#include "FlyCapture2.h"
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
using namespace FlyCapture2;
int main()
{
Error error;
Camera camera;
CameraInfo camInfo;
// Connect the camera
error = camera.Connect( 0 );
if ( error != PGRERROR_OK )
{
std::cout << "Failed to connect to camera" << std::endl;
return false;
}
// Get the camera info and print it out
error = camera.GetCameraInfo( &camInfo );
if ( error != PGRERROR_OK )
{
std::cout << "Failed to get camera info from camera" << std::endl;
return false;
}
std::cout << camInfo.vendorName << " "
<< camInfo.modelName << " "
<< camInfo.serialNumber << std::endl;
error = camera.StartCapture();
if ( error == PGRERROR_ISOCH_BANDWIDTH_EXCEEDED )
{
std::cout << "Bandwidth exceeded" << std::endl;
return false;
}
else if ( error != PGRERROR_OK )
{
std::cout << "Failed to start image capture" << std::endl;
return false;
}
// capture loop
char key = 0;
while(key != 'q')
{
// Get the image
Image rawImage;
Error error = camera.RetrieveBuffer( &rawImage );
if ( error != PGRERROR_OK )
{
std::cout << "capture error" << std::endl;
continue;
}
// convert to rgb
Image rgbImage;
rawImage.Convert( FlyCapture2::PIXEL_FORMAT_BGR, &rgbImage );
// convert to OpenCV Mat
unsigned int rowBytes = (double)rgbImage.GetReceivedDataSize()/(double)rgbImage.GetRows();
cv::Mat image = cv::Mat(rgbImage.GetRows(), rgbImage.GetCols(), CV_8UC3, rgbImage.GetData(),rowBytes);
cv::imshow("image", image);
key = cv::waitKey(30);
}
error = camera.StopCapture();
if ( error != PGRERROR_OK )
{
// This may fail when the camera was removed, so don't show
// an error message
}
camera.Disconnect();
return 0;
}
@vefak
Copy link

vefak commented Aug 26, 2020

hi, when run the code, the image that grabbing is in Gray format not RGB? Anyone have same problem?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment