コード例 #1
0
void rspfSFIMFusion::initAdjustableParameters()
{
   resizeAdjustableParameterArray(NUMBER_OF_ADJUSTABLE_PARAMETERS);

   setAdjustableParameter(HIGH_PASS_GAIN_OFFSET,
                          -1.0);
   setParameterDescription(HIGH_PASS_GAIN_OFFSET,
                           "High pass gain");
   setParameterSigma(HIGH_PASS_GAIN_OFFSET,
                     1);
   setParameterCenter(HIGH_PASS_GAIN_OFFSET,
                      1.0);

   setAdjustableParameter(LOW_PASS_WIDTH_OFFSET,
                          -1);
   setParameterDescription(LOW_PASS_WIDTH_OFFSET,
                           "Low pass kernel width");
   setParameterSigma(LOW_PASS_WIDTH_OFFSET,
                     40);
   setParameterCenter(LOW_PASS_WIDTH_OFFSET,
                      40.5);
   

   setParameterOffset(LOW_PASS_WIDTH_OFFSET,
                      1.5);
}
コード例 #2
0
bool ossimCsmSensorModel::setSensorModel(const ossimFilename& imageFile, 
                                         const ossimFilename& pluginDir, 
                                         const ossimString& pluginName,
                                         const ossimString& sensorName)
{
   if(m_model)
   {
      delete m_model; m_model = 0;
   }
   ossimString error;
   m_pluginDir  = pluginDir;
   m_pluginName = pluginName;
   m_sensorName = sensorName;
   m_imageFile  = imageFile;
   if(!m_pluginDir.exists()||!m_imageFile.exists()) return false;
   if(!m_sensorName.empty()&&!m_pluginName.empty())
   {
      m_model = CSMSensorModelLoader::newSensorModel(m_pluginDir.c_str(), 
                                                     m_pluginName, 
                                                     m_sensorName.c_str(), 
                                                     m_imageFile.c_str(), error, false);
      if(!error.empty()&&m_model)
      {
         delete m_model;
         m_model = 0;
      }
   }
   else
   {
      std::vector<string> pluginNames = CSMSensorModelLoader::getAvailablePluginNames(m_pluginDir, error );    
      ossim_uint32 idx = 0;
      
      for(idx = 0; ((idx < pluginNames.size())&&(!m_model)); ++idx)
      {
         std::vector<string> sensorModelNames = CSMSensorModelLoader::getAvailableSensorModelNames( pluginDir, 
                                                                                                   pluginNames[idx].c_str(),  error );    
         ossim_uint32 idx2=0;
         for(idx2 = 0; ((idx2 < sensorModelNames.size())&&(!m_model)); ++idx2)
         { 
            error = "";
            TSMSensorModel* model = CSMSensorModelLoader::newSensorModel(pluginDir, 
                                                                         pluginNames[idx].c_str(), 
                                                                         sensorModelNames[idx2].c_str(), 
                                                                         m_imageFile.c_str(), error, false);
            if(model&&error.empty())
            {
               m_sensorName = sensorModelNames[idx2].c_str();
               m_pluginName = pluginNames[idx];
               m_model = model;
            }
            else if(model)
            {
               delete model;
               model = 0;
            }
         }
      }
   }
   if(m_model)
   {
      int nLines, nSamples;
      m_model->getImageSize(nLines, nSamples);	
      
      theImageClipRect = ossimIrect(-nLines, -nSamples, 2*nLines, 2*nSamples);
      theRefImgPt = theImageClipRect.midPoint();
      int nParams = 0;
      m_model->getNumParameters(nParams);
      int idx = 0;
      ossimString name;
      resizeAdjustableParameterArray(nParams);
      double paramValue = 0.0;
      TSMMisc::Param_CharType paramType;
      for(idx = 0; idx < nParams; ++idx)
      {
         m_model->getParameterName(idx, name);
         m_model->getCurrentParameterValue(idx, paramValue);
         setParameterCenter(idx, paramValue);
         setAdjustableParameter(idx, 0.0, 1.0);
         setParameterDescription(idx, name.c_str());
         m_model->getParameterType(idx, paramType); 
         setParameterUnit(idx, "");
      }
      try
      {
         computeGsd();
      }
      catch (...) 
      {
      }
      
   }
   
   return (m_model != 0);
}