// xiApiPlusOcvExample.cpp : program demonstrates enabling and disabling Flat Field Correction // switching FFC between ON and OFF is done by pressing any key during running #include #include "xiApiPlusOcv.hpp" using namespace cv; using namespace std; int main(int argc, char* argv[]) { try { // Sample for XIMEA OpenCV xiAPIplusCameraOcv cam; cam.EnableNewProcessChainEnable(); // Retrieving a handle to the camera device printf("Opening first camera...\n"); cam.OpenFirst(); //Set exposure cam.SetExposureTime(50000); //10000 us = 10 ms cam.SetImageDataFormat(XI_RAW8); // Note: The default parameters of each camera might be different in different API versions char dark_img_name[]="dark.tif"; char mid_img_name[]="mid.tif"; cam.SetFFCDarkFieldFileName (dark_img_name); cam.SetFFCFlatFieldFileName(mid_img_name); cam.EnableFlatFieldCorrection(); printf("FFC enabled"); printf("Starting acquisition...\n"); cam.StartAcquisition(); printf("First pixel value \n"); #define EXPECTED_IMAGES 100 bool is_enabled = true; while(1) { Mat cv_mat_image = cam.GetNextImageOcvMat(); imshow("Image from camera",cv_mat_image); if(cvWaitKey(1) > 0) { if(is_enabled) { cam.DisableFlatFieldCorrection(); is_enabled = false; } else { cam.EnableFlatFieldCorrection(); is_enabled = true; } } } cam.StopAcquisition(); cam.DisableFlatFieldCorrection(); cam.StopAcquisition(); cam.Close(); printf("Done\n"); cvWaitKey(500); } catch(xiAPIplus_Exception& exp){ printf("Error:\n"); exp.PrintError(); cvWaitKey(2000); } waitKey(0); return 0; }