Skip to content

Instantly share code, notes, and snippets.

@bemoregt
Forked from dotchang/GigEStereoCapture.cpp
Created August 10, 2016 06:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bemoregt/7871dcf255a836bc344f227940611c5d to your computer and use it in GitHub Desktop.
Save bemoregt/7871dcf255a836bc344f227940611c5d to your computer and use it in GitHub Desktop.
#include "stdafx.h"
#include "GigECameraCap.h"
#include "opencv2/opencv.hpp"
#ifdef _DEBUG
#pragma comment(lib, "FlyCapture2d.lib")
#pragma comment(lib, "opencv_core248d.lib")
#pragma comment(lib, "opencv_highgui248d.lib")
#else
#pragma comment(lib, "FlyCapture2.lib")
#pragma comment(lib, "opencv_core248.lib")
#pragma comment(lib, "opencv_highgui248.lib")
#endif
using namespace FlyCapture2;
using namespace cv;
int main(int argc, char* argv[])
{
// Setup GigE Bus
GigEBusManager bus;
bus.Init();
// Setup GigE Camera
GigECameraCap *cam = new GigECameraCap[bus.num_cameras()];
for(unsigned int i=0; i<bus.num_cameras(); i++){
cam[i].Init(bus.guid(i));
}
Mat *show = new Mat[bus.num_cameras()];
int num_of_rec = 0;
for(;;){
// Capture
#ifdef _OPENMP
#pragma omp parallel for
#endif
for(int j=0; j<(int)bus.num_cameras(); j++){
cam[j].grap(show[j]);
}
// Show
for(unsigned int j=0; j<bus.num_cameras(); j++){
char winname[256];
sprintf(winname,"cam%d",j);
imshow(winname,show[j]);
}
// Key Input
char c=waitKey(1);
if (c == '\x1b') break;
else if (c == 'r'){
cout << "save " << num_of_rec << endl;
for(int j=0; j<(int)bus.num_cameras(); j++){
char filename[1024];
sprintf_s(filename, 1024, "calib%d_%02d.ppm", j, num_of_rec);
imwrite(filename,show[j]);
}
num_of_rec+=1;
}
}
delete [] show;
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment