INT LoadSettings(HIDS* m_hCam, const wchar_t* settingsFile) { INT result = IS_SUCCESS; if (settingsFile != NULL && *settingsFile != '\0') { TRACE("Loading settings from %s\n", settingsFile); result = is_ParameterSet(*m_hCam, IS_PARAMETERSET_CMD_LOAD_FILE, (void*) settingsFile, NULL); if (result == IS_SUCCESS) { // realloc image mem with actual sizes and depth. is_FreeImageMem( *m_hCam, m_pcImageMemory, m_lMemoryId ); GetImageSize( *m_hCam, m_nSizeX, m_nSizeY); switch( is_SetColorMode( *m_hCam, IS_GET_COLOR_MODE ) ) { case IS_CM_BGRA8_PACKED: m_nBitsPerPixel = 32; break; case IS_CM_BGR8_PACKED: m_nBitsPerPixel = 24; break; case IS_CM_BGR565_PACKED: case IS_CM_UYVY_PACKED: m_nBitsPerPixel = 16; break; case IS_CM_BGR5_PACKED: m_nBitsPerPixel = 15; break; case IS_CM_MONO8: case IS_CM_SENSOR_RAW8: default: m_nBitsPerPixel = 8; break; } } } return result; }
INT UEyeCamDriver::loadCamConfig(string filename) { if (!isConnected()) return IS_INVALID_CAMERA_HANDLE; INT is_err = IS_SUCCESS; // Convert filename to unicode, as requested by UEye API const wstring filenameU(filename.begin(), filename.end()); if ((is_err = is_ParameterSet(cam_handle_, IS_PARAMETERSET_CMD_LOAD_FILE, (void*) filenameU.c_str(), 0)) != IS_SUCCESS) { std::cerr << "Could not load UEye camera '" << cam_name_ << "' sensor parameters file " << filename << " (" << err2str(is_err) << ")" << std::endl; return is_err; } else { // Update the AOI and bits per pixel if ((is_err = is_AOI(cam_handle_, IS_AOI_IMAGE_GET_AOI, (void*) &cam_aoi_, sizeof(cam_aoi_))) != IS_SUCCESS) { std::cerr << "Could not retrieve Area Of Interest from UEye camera '" << cam_name_ << "' (" << err2str(is_err) << ")" << std::endl; return is_err; } INT colorMode = is_SetColorMode(cam_handle_, IS_GET_COLOR_MODE); if (colorMode == IS_CM_BGR8_PACKED || colorMode == IS_CM_RGB8_PACKED) { bits_per_pixel_ = 24; } else if (colorMode == IS_CM_MONO8 || colorMode == IS_CM_SENSOR_RAW8) { bits_per_pixel_ = 8; } else { std::cerr << "Current camera color mode is not supported by this wrapper;" << "supported modes: {MONO8 | RGB8 | BAYER_RGGB8}; switching to RGB8 (24-bit)" << std::endl; if ((is_err = setColorMode("rgb8", false)) != IS_SUCCESS) return is_err; } reallocateCamBuffer(); std::cout << "Successfully loaded UEye camera '" << cam_name_ << "'s sensor parameter file: " << filename << std::endl; } return is_err; }