/** * Computes the histogram of intensity values for the image. For floating point images it is rounded * to the nearest integer using "(int)value". * * @param input (input) Image. * @param minValue (input) Minimum possible intensity value Ignored for unsigned images. * @param histogram (output) Storage for histogram. Number of elements must be equal to max value. */ public static void histogram(ImageGray input , double minValue , int histogram[] ) { if( GrayU8.class == input.getClass() ) { ImageStatistics.histogram((GrayU8)input,(int)minValue,histogram); } else if( GrayS8.class == input.getClass() ) { ImageStatistics.histogram((GrayS8)input,(int)minValue,histogram); } else if( GrayU16.class == input.getClass() ) { ImageStatistics.histogram((GrayU16)input,(int)minValue,histogram); } else if( GrayS16.class == input.getClass() ) { ImageStatistics.histogram((GrayS16)input,(int)minValue,histogram); } else if( GrayS32.class == input.getClass() ) { ImageStatistics.histogram((GrayS32)input,(int)minValue,histogram); } else if( GrayS64.class == input.getClass() ) { ImageStatistics.histogram((GrayS64)input,(long)minValue,histogram); } else if( GrayF32.class == input.getClass() ) { ImageStatistics.histogram((GrayF32)input,(float)minValue,histogram); } else if( GrayF64.class == input.getClass() ) { ImageStatistics.histogram((GrayF64)input,minValue,histogram); } else { throw new IllegalArgumentException("Unknown image Type"); } } }
@Override public void process(GrayU8 input) { ImageStatistics.histogram(input,0, histogram); EnhanceImageOps.equalize(histogram, transform); EnhanceImageOps.applyTransform(input, transform, enhanced); renderOutput(enhanced); } }
@Override public void process(Planar<GrayU8> input) { ConvertImage.average(input,gray); ImageStatistics.histogram(gray,0, histogram); EnhanceImageOps.equalize(histogram, transform); for( int i = 0; i < 3; i++ ) EnhanceImageOps.applyTransform(input.getBand(i), transform, enhanced.getBand(i)); renderOutput(enhanced); } }
long before = System.nanoTime(); if( controls.activeAlgorithm.equals(HISTOGRAM_GLOBAL)) { ImageStatistics.histogram(gray,0,histogram); EnhanceImageOps.equalize(histogram, transform); if( controls.color ){
ImageStatistics.histogram(input,0,histogram); equalize(histogram,transform); applyTransform(input,transform,output);
ImageStatistics.histogram(input,0,histogram); equalize(histogram,transform); applyTransform(input,transform,output);