示例#1
0
        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);
     }
 }