示例#1
0
//Histogram *Unser(Image *img)
float *Unser(Image *img)
{
  Histogram *h = NULL;
  float sum[4][511], dif[4][511], *val=NULL;
  float mean, contrast, correlation;
  int i;

  val = (float*) calloc(SIZE,sizeof(float));

  ComputeHistograms(img, sum, dif);

  for (i=0; i<4; i++){
    mean = Mean(sum[i]);
    val[i * 8 + 0] = mean;
    contrast = Contrast(dif[i]);
    val[i * 8 + 1] = contrast;// / 255.0;
    correlation = Correlation(sum[i], mean, contrast);
    val[i * 8 + 2] = (correlation);// + 32512.5) / 255.0;
    val[i * 8 + 3] = Energy(sum[i], dif[i]);// * 255.0 ;
    val[i * 8 + 4] = Entropy(sum[i], dif[i]);// * 255.0 / 5.4168418;
    val[i * 8 + 5] = Homogeneity(dif[i]);// * 255.0;
    val[i * 8 + 6] = MaximalProbability(sum[i]);// * 255.0;
    val[i * 8 + 7] = StandardDeviation(contrast, correlation);// *sqrt(2);
  }

  //h = CreateHistogram(SIZE);
  //LinearNormalizeHistogram(h->v, val, 255.0, SIZE);

  //return(h);
  return(val);
}
示例#2
0
    inline Homogeneity operator+ (Homogeneity const & h) {
        /* to combine regions, or to get the maximum-norm kernel
         * <= both this and h
         */
        T_color l_o = o_ | h.o_; T_color l_a = a_ & h.a_;

        return Homogeneity(l_o, l_a, size_);
    }