//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); }
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_); }