public HistogramEqualization(FitsImage image, double min, double max) { this.min = min; this.max = max; factor = max - min; Histogram = image.ComputeHistogram(buckets, out maxHistogramValue); lookup = new Byte[buckets]; int totalCounts = image.Width * image.Height; int sum = 0; for (int i = 0; i < buckets; i++) { sum += Histogram[i]; lookup[i] = (Byte)(Math.Min(255, ((sum * 255.0)) / totalCounts) + .5); } }
public override void WriteLayerProperties(System.Xml.XmlTextWriter xmlWriter) { if (imageSet.WcsImage != null) { xmlWriter.WriteAttributeString("Extension", Path.GetExtension(imageSet.WcsImage.Filename)); } if (imageSet.WcsImage is FitsImage) { FitsImage fi = imageSet.WcsImage as FitsImage; xmlWriter.WriteAttributeString("ScaleType", fi.lastScale.ToString()); xmlWriter.WriteAttributeString("MinValue", fi.lastBitmapMin.ToString()); xmlWriter.WriteAttributeString("MaxValue", fi.lastBitmapMax.ToString()); } xmlWriter.WriteAttributeString("OverrideDefault", overrideDefaultLayer.ToString()); ImageSetHelper.SaveToXml(xmlWriter, imageSet, ""); base.WriteLayerProperties(xmlWriter); }
public HistogramEqualization(FitsImage image, double min, double max) { int maxHistogramValue; this.min = min; factor = max - min; int[] histogram = image.ComputeHistogram(buckets, out maxHistogramValue); lookup = new Byte[buckets]; var totalCounts = image.Width*image.Height; var sum = 0; for(var i = 0;i< buckets;i++) { sum+=histogram[i]; lookup[i]=(Byte)(Math.Min(255,((sum*255.0))/totalCounts)+.5); } }