bool CvCaptureCAM_XIMEA::setProperty( int property_id, double value ) { int ival = (int) value; float fval = (float) value; int mvret = XI_OK; switch(property_id) { // OCV parameters case CV_CAP_PROP_FRAME_WIDTH : mvret = xiSetParamInt( hmv, XI_PRM_WIDTH, ival); if(mvret == XI_OK) width = ival; break; case CV_CAP_PROP_FRAME_HEIGHT : mvret = xiSetParamInt( hmv, XI_PRM_HEIGHT, ival); if(mvret == XI_OK) height = ival; break; case CV_CAP_PROP_FPS : mvret = xiSetParamFloat( hmv, XI_PRM_FRAMERATE, fval); break; case CV_CAP_PROP_GAIN : mvret = xiSetParamFloat( hmv, XI_PRM_GAIN, fval); break; case CV_CAP_PROP_EXPOSURE : mvret = xiSetParamInt( hmv, XI_PRM_EXPOSURE, ival); break; // XIMEA camera properties case CV_CAP_PROP_XI_DOWNSAMPLING : mvret = xiSetParamInt( hmv, XI_PRM_DOWNSAMPLING, ival); break; case CV_CAP_PROP_XI_DATA_FORMAT : mvret = xiSetParamInt( hmv, XI_PRM_IMAGE_DATA_FORMAT, ival); if(mvret == XI_OK) format = ival; break; case CV_CAP_PROP_XI_OFFSET_X : mvret = xiSetParamInt( hmv, XI_PRM_OFFSET_X, ival); break; case CV_CAP_PROP_XI_OFFSET_Y : mvret = xiSetParamInt( hmv, XI_PRM_OFFSET_Y, ival); break; case CV_CAP_PROP_XI_TRG_SOURCE : mvret = xiSetParamInt( hmv, XI_PRM_TRG_SOURCE, ival); break; case CV_CAP_PROP_XI_GPI_SELECTOR : mvret = xiSetParamInt( hmv, XI_PRM_GPI_SELECTOR, ival); break; case CV_CAP_PROP_XI_TRG_SOFTWARE : mvret = xiSetParamInt( hmv, XI_PRM_TRG_SOURCE, 1); break; case CV_CAP_PROP_XI_GPI_MODE : mvret = xiSetParamInt( hmv, XI_PRM_GPI_MODE, ival); break; case CV_CAP_PROP_XI_GPI_LEVEL : mvret = xiSetParamInt( hmv, XI_PRM_GPI_LEVEL, ival); break; case CV_CAP_PROP_XI_GPO_SELECTOR : mvret = xiSetParamInt( hmv, XI_PRM_GPO_SELECTOR, ival); break; case CV_CAP_PROP_XI_GPO_MODE : mvret = xiSetParamInt( hmv, XI_PRM_GPO_MODE, ival); break; case CV_CAP_PROP_XI_LED_SELECTOR : mvret = xiSetParamInt( hmv, XI_PRM_LED_SELECTOR, ival); break; case CV_CAP_PROP_XI_LED_MODE : mvret = xiSetParamInt( hmv, XI_PRM_LED_MODE, ival); break; case CV_CAP_PROP_XI_AUTO_WB : mvret = xiSetParamInt( hmv, XI_PRM_AUTO_WB, ival); break; case CV_CAP_PROP_XI_MANUAL_WB : mvret = xiSetParamInt( hmv, XI_PRM_LED_MODE, ival); break; case CV_CAP_PROP_XI_AEAG : mvret = xiSetParamInt( hmv, XI_PRM_AEAG, ival); break; case CV_CAP_PROP_XI_EXP_PRIORITY : mvret = xiSetParamFloat( hmv, XI_PRM_EXP_PRIORITY, fval); break; case CV_CAP_PROP_XI_AE_MAX_LIMIT : mvret = xiSetParamInt( hmv, XI_PRM_EXP_PRIORITY, ival); break; case CV_CAP_PROP_XI_AG_MAX_LIMIT : mvret = xiSetParamFloat( hmv, XI_PRM_AG_MAX_LIMIT, fval); break; case CV_CAP_PROP_XI_AEAG_LEVEL : mvret = xiSetParamInt( hmv, XI_PRM_AEAG_LEVEL, ival); break; case CV_CAP_PROP_XI_TIMEOUT : timeout = ival; break; } if(mvret != XI_OK) { errMsg("Set parameter error", mvret); return false; } else return true; }
void Camera::setFloatParam(const char* name, float value) { if (!opened) { return; } xiSetParamFloat(device, name, value); }
void CameraXIMEA::setCameraSettings(CameraSettings settings){ // Set shutter (in us) xiSetParamInt(camera, XI_PRM_EXPOSURE, settings.shutter*1000); // Set gain (in dB) xiSetParamFloat(camera, XI_PRM_GAIN, settings.gain); std::cout << "Setting camera parameters:" << std::endl << "Shutter: " << settings.shutter << " ms" << std::endl << "Gain: " << settings.gain << " dB" << std::endl; }
void CRCamera::initialize() { DWORD dwNumberOfDevices = 0; float maxFps; xiGetNumberDevices(&dwNumberOfDevices); if (!dwNumberOfDevices) { LOG("Camera was NOT found."); } xiOpenDevice(0, &this->xiH); int exposure = (int)(1000000.0 / Global::crConfig->frameRate); xiSetParamInt(this->xiH, XI_PRM_EXPOSURE, exposure); xiGetParamFloat(this->xiH, XI_PRM_FRAMERATE XI_PRM_INFO_MAX, &maxFps); LOG("Max framerate : %f [fps]", maxFps); LOG("Exposure time : %d [us]", exposure); xiSetParamInt(this->xiH, XI_PRM_ACQ_TIMING_MODE, XI_ACQ_TIMING_MODE_FRAME_RATE); xiSetParamFloat(this->xiH, XI_PRM_FRAMERATE, Global::crConfig->frameRate); xiSetParamInt(this->xiH, XI_PRM_IMAGE_DATA_FORMAT, XI_RGB24); }
CameraXIMEA::CameraXIMEA(unsigned int camNum, CameraTriggerMode triggerMode) : Camera(triggerMode), camera(NULL){ // Set debugging level xiSetParamInt(0, XI_PRM_DEBUG_LEVEL, XI_DL_FATAL); // Disable auto bandwidth determination (takes some seconds in initialization) xiSetParamInt(0, XI_PRM_AUTO_BANDWIDTH_CALCULATION, XI_OFF); // Retrieve a handle to the camera device stat = xiOpenDevice(camNum, &camera); HandleResult(stat,"xiOpenDevice"); // Configure unsafe buffers (prevents old buffers, memory leak) xiSetParamInt(camera, XI_PRM_BUFFER_POLICY, XI_BP_UNSAFE); // // Output frame signal // xiSetParamInt(camera, XI_PRM_GPO_SELECTOR, 1); // xiSetParamInt(camera, XI_PRM_GPO_MODE, XI_GPO_ON); // Configure buffer size // stat = xiSetParamInt(camera, XI_PRM_ACQ_BUFFER_SIZE, 128*1024); // HandleResult(stat,"xiSetParam (XI_PRM_ACQ_BUFFER_SIZE)"); stat = xiSetParamInt(camera, XI_PRM_BUFFERS_QUEUE_SIZE, 10); HandleResult(stat,"xiSetParam (XI_PRM_BUFFERS_QUEUE_SIZE)"); // Configure queue mode (0 = next frame in queue, 1 = most recent frame) stat = xiSetParamInt(camera, XI_PRM_RECENT_FRAME, 0); HandleResult(stat,"xiSetParam (XI_PRM_RECENT_FRAME)"); // Configure image type stat = xiSetParamInt(camera, XI_PRM_IMAGE_DATA_FORMAT, XI_RAW8); HandleResult(stat,"xiSetParam (XI_PRM_IMAGE_DATA_FORMAT)"); // Configure input pin 1 as trigger input xiSetParamInt(camera, XI_PRM_GPI_SELECTOR, 1); stat = xiSetParamInt(camera, XI_PRM_GPI_MODE, XI_GPI_TRIGGER); HandleResult(stat,"xiSetParam (XI_PRM_GPI_MODE)"); // // Configure frame rate // stat = xiSetParamFloat(camera, XI_PRM_FRAMERATE, 10); // HandleResult(stat,"xiSetParam (XI_PRM_FRAMERATE)"); // // Downsample to half size // stat = xiSetParamInt(camera, XI_PRM_DOWNSAMPLING_TYPE, XI_BINNING); // HandleResult(stat,"xiSetParam (XI_PRM_DOWNSAMPLING_TYPE)"); // stat = xiSetParamInt(camera, XI_PRM_DOWNSAMPLING, 2); // HandleResult(stat,"xiSetParam (XI_PRM_DOWNSAMPLING)"); // Define ROI stat = xiSetParamInt(camera, XI_PRM_WIDTH, 1024); HandleResult(stat,"xiSetParam (XI_PRM_WIDTH)"); stat = xiSetParamInt(camera, XI_PRM_HEIGHT, 544); HandleResult(stat,"xiSetParam (XI_PRM_HEIGHT)"); stat = xiSetParamInt(camera, XI_PRM_OFFSET_X, 512); HandleResult(stat,"xiSetParam (XI_PRM_OFFSET_X)"); stat = xiSetParamInt(camera, XI_PRM_OFFSET_Y, 272-50); HandleResult(stat,"xiSetParam (XI_PRM_OFFSET_Y)"); // Setting reasonable default settings xiSetParamFloat(camera, XI_PRM_GAMMAY, 1.0); xiSetParamInt(camera, XI_PRM_EXPOSURE, 16666); //us xiSetParamFloat(camera, XI_PRM_GAIN, 0); }