Changeset 12092 for trunk/FACT++


Ignore:
Timestamp:
09/13/11 15:07:20 (13 years ago)
Author:
lyard
Message:
got rid of crappy nan display
Location:
trunk/FACT++/gui
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/FACT++/gui/BasicGlCamera.cc

    r12079 r12092  
    376376        ostringstream str;
    377377        float min, max, median;
    378         min = max = fData[0];
     378        int ii=0;
     379        for (;ii<ACTUAL_NUM_PIXELS;ii++)
     380        {
     381            if (finite(fData[ii]))
     382            {
     383                min = max = fData[ii];
     384                break;
     385            }
     386        }
    379387        double mean = 0;
    380388        double rms = 0;
    381389        median = 0;
    382  //       multiset<double> medianSet;
     390        if (ii==ACTUAL_NUM_PIXELS)
     391        {
     392            fmin = fmax = fmean = frms = fmedian = 0;
     393            return;
     394        }
     395
    383396        vector<double> medianVec;
    384397        medianVec.resize(ACTUAL_NUM_PIXELS);
    385398        auto it = medianVec.begin();
     399        int numSamples = 0;
    386400        for (int i=0;i<ACTUAL_NUM_PIXELS;i++)
    387401        {
     402            if (!finite(fData[i]))
     403                continue;
    388404            if (fData[i] < min)
    389405                min = fData[i];
     
    395411            *it = fData[i];
    396412            it++;
     413            numSamples++;
    397414        }
    398415
     
    404421//            iii++;
    405422//        }
    406         sort(medianVec.begin(), medianVec.end());
    407 
    408 
    409         mean /= ACTUAL_NUM_PIXELS;
    410         rms = sqrt(rms/ACTUAL_NUM_PIXELS - mean * mean);
     423        sort(medianVec.begin(), medianVec.begin()+numSamples);
     424
     425
     426        mean /= numSamples;
     427        rms = sqrt((rms/numSamples) - (mean * mean));
    411428
    412429//       multiset<double>::iterator it = medianSet.begin();
    413430        auto jt = medianVec.begin();
    414         for (int i=0;i<(ACTUAL_NUM_PIXELS/2)-1;i++)
     431        for (int i=0;i<(numSamples/2)-1;i++)
    415432        {
    416433//            it++;
     
    419436        median = *jt;
    420437 //       cout << *it << " " << *jt << endl;
     438        if (numSamples%2==0){
    421439        jt++;
    422440        median += *jt;
    423         median /= 2;
     441        median /= 2;}
    424442
    425443        str << "Min: " << min << endl << " Max: " << max << " Mean: " << mean << " RMS: " << rms << " Median: " << median;
  • trunk/FACT++/gui/QCameraWidget.cc

    r12080 r12092  
    310310         double dmin = fData[0];
    311311          double dmax = fData[0];
     312          for (int ii=0;ii<ACTUAL_NUM_PIXELS;ii++)
     313          {
     314              if (finite(fData[ii]))
     315              {
     316                  dmin = dmax = fData[ii];
     317                  break;
     318              }
     319          }
    312320          if (fMin < fScaleLimit || fMax < fScaleLimit)
    313321          {
    314322              for (int i=0;i<ACTUAL_NUM_PIXELS;i++)
    315323              {
     324                  if (!finite(fData[i])) continue;
    316325                  if (!fEnable[i]) continue;
    317326                  if (fData[i] > dmax) dmax = fData[i];
     
    325334          for (int i=0;i<ACTUAL_NUM_PIXELS;i++)
    326335           {
    327               if (!fEnable[i])
     336              if (!fEnable[i] || !finite(fData[i]))
    328337              {
    329338//                  cout << "not enabled !" << i << endl;
Note: See TracChangeset for help on using the changeset viewer.