double CaptureCAM_XIMEA::getProperty( int property_id ) { if(hmv == NULL) return 0; int ival = 0; float fval = 0; switch( property_id ) { // OCV parameters case CAP_PROP_POS_FRAMES : return (double) image.nframe; case CAP_PROP_FRAME_WIDTH : xiGetParamInt( hmv, XI_PRM_WIDTH, &ival); return ival; case CAP_PROP_FRAME_HEIGHT : xiGetParamInt( hmv, XI_PRM_HEIGHT, &ival); return ival; case CAP_PROP_FPS : xiGetParamFloat( hmv, XI_PRM_FRAMERATE, &fval); cout << fval << endl; return fval; case CAP_PROP_GAIN : xiGetParamFloat( hmv, XI_PRM_GAIN, &fval); return fval; case CAP_PROP_EXPOSURE : xiGetParamInt( hmv, XI_PRM_EXPOSURE, &ival); return ival; // XIMEA camera properties case CAP_PROP_XI_DOWNSAMPLING : xiGetParamInt( hmv, XI_PRM_DOWNSAMPLING, &ival); return ival; case CAP_PROP_XI_DATA_FORMAT : xiGetParamInt( hmv, XI_PRM_IMAGE_DATA_FORMAT, &ival); return ival; case CAP_PROP_XI_OFFSET_X : xiGetParamInt( hmv, XI_PRM_OFFSET_X, &ival); return ival; case CAP_PROP_XI_OFFSET_Y : xiGetParamInt( hmv, XI_PRM_OFFSET_Y, &ival); return ival; case CAP_PROP_XI_TRG_SOURCE : xiCloseDevice(hmv);xiGetParamInt( hmv, XI_PRM_TRG_SOURCE, &ival); return ival; case CAP_PROP_XI_GPI_SELECTOR : xiGetParamInt( hmv, XI_PRM_GPI_SELECTOR, &ival); return ival; case CAP_PROP_XI_GPI_MODE : xiGetParamInt( hmv, XI_PRM_GPI_MODE, &ival); return ival; case CAP_PROP_XI_GPI_LEVEL : xiGetParamInt( hmv, XI_PRM_GPI_LEVEL, &ival); return ival; case CAP_PROP_XI_GPO_SELECTOR : xiGetParamInt( hmv, XI_PRM_GPO_SELECTOR, &ival); return ival; case CAP_PROP_XI_GPO_MODE : xiGetParamInt( hmv, XI_PRM_GPO_MODE, &ival); return ival; case CAP_PROP_XI_LED_SELECTOR : xiGetParamInt( hmv, XI_PRM_LED_SELECTOR, &ival); return ival; case CAP_PROP_XI_LED_MODE : xiGetParamInt( hmv, XI_PRM_LED_MODE, &ival); return ival; case CAP_PROP_XI_AUTO_WB : xiGetParamInt( hmv, XI_PRM_AUTO_WB, &ival); return ival; case CAP_PROP_XI_AEAG : xiGetParamInt( hmv, XI_PRM_AEAG, &ival); return ival; case CAP_PROP_XI_EXP_PRIORITY : xiGetParamFloat( hmv, XI_PRM_EXP_PRIORITY, &fval); return fval; case CAP_PROP_XI_AE_MAX_LIMIT : xiGetParamInt( hmv, XI_PRM_EXP_PRIORITY, &ival); return ival; case CAP_PROP_XI_AG_MAX_LIMIT : xiGetParamFloat( hmv, XI_PRM_AG_MAX_LIMIT, &fval); return fval; case CAP_PROP_XI_AEAG_LEVEL : xiGetParamInt( hmv, XI_PRM_AEAG_LEVEL, &ival); return ival; case CAP_PROP_XI_TIMEOUT : return timeout; case CAP_PROP_XI_TIMESTAMP : return (float)image.tsSec+(float)image.tsUSec/1000000; case CAP_PROP_XI_FRAME_NUMBER : return (int)image.nframe; } return 0; }
float Camera::getFloatParam(const char* name) { if (!opened) { return -1.0f; } float floatParam = 0; xiGetParamFloat(device, name, &floatParam); return floatParam; }
CameraSettings CameraXIMEA::getCameraSettings(){ CameraSettings settings; int shutter; xiGetParamInt(camera, XI_PRM_EXPOSURE, &shutter); settings.shutter = shutter/1000.0; // from us to ms xiGetParamFloat(camera, XI_PRM_GAIN, &settings.gain); return settings; }
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); }