예제 #1
0
 /// <summary>
 /// Initializes the Single Scale Retinex filter.
 /// </summary>
 /// <param name="radius">Radius</param>
 /// <param name="space">Color space</param>
 /// <param name="a">Contrast [-1, 1]</param>
 /// <param name="b">Offset (0, 1]</param>
 /// <param name="nbase">Logarithm base</param>
 public SingleScaleRetinex(int radius, Space space, float a = 1, float b = 0, float nbase = Maths.Pi)
 {
     gb    = new BoxBlur(radius);
     Space = space; A = a; B = b; Base = nbase;
 }
예제 #2
0
 /// <summary>
 /// Initializes the Single Scale Retinex filter.
 /// </summary>
 /// <param name="width">Filter width</param>
 /// <param name="height">Filter height</param>
 /// <param name="space">Color space</param>
 /// <param name="a">Contrast [-1, 1]</param>
 /// <param name="b">Offset (0, 1]</param>
 /// <param name="nbase">Logarithm base</param>
 public SingleScaleRetinex(int width, int height, Space space, float a = 1, float b = 0, float nbase = Maths.Pi)
 {
     gb    = new BoxBlur(width, height);
     Space = space; A = a; B = b; Base = nbase;
 }
예제 #3
0
 /// <summary>
 /// Initializes the Bradley local threshold filter.
 /// </summary>
 /// <param name="width">Filter width</param>
 /// <param name="height">Filter height</param>
 /// <param name="space">Color space</param>
 /// <param name="difference">Difference [0, 1]</param>
 public LocalThreshold(int width, int height, Space space, float difference = 0.15f)
 {
     gb         = new BoxBlur(width, height);
     Difference = difference;
     Space      = space;
 }
예제 #4
0
 /// <summary>
 /// Initializes the flat-field correction filter.
 /// </summary>
 /// <param name="width">Filter width</param>
 /// <param name="height">Filter height</param>
 public FlatFieldCorrection(int width, int height)
 {
     gb = new BoxBlur(width, height);
 }
예제 #5
0
 /// <summary>
 /// Initializes the filter for homomorphic processing.
 /// </summary>
 /// <param name="radius">Radius</param>
 /// <param name="space">Color space</param>
 /// <param name="a">Contrast [-1, 1]</param>
 /// <param name="b">Offset (0, 1]</param>
 public HomomorphicEnhancement(int radius, Space space, float a = 0.5f, float b = 0.05f)
 {
     gb    = new BoxBlur(radius);
     Space = space; A = a; B = b;
 }
예제 #6
0
 /// <summary>
 /// Initializes the filter for homomorphic processing.
 /// </summary>
 /// <param name="size">Radius</param>
 /// <param name="space">Color space</param>
 /// <param name="a">Contrast [-1, 1]</param>
 /// <param name="b">Offset (0, 1]</param>
 public HomomorphicEnhancement(SizeInt size, Space space, float a = 0.5f, float b = 0.05f)
 {
     gb    = new BoxBlur(size);
     Space = space; A = a; B = b;
 }
예제 #7
0
 /// <summary>
 /// Initializes the local mask correction filter.
 /// </summary>
 /// <param name="radius">Radius</param>
 /// <param name="space">Color space</param>
 /// <param name="values">Matrix mask</param>
 public LocalCorrection(int radius, float[,] values, Space space)
 {
     gb     = new BoxBlur(radius);
     Space  = space;
     Values = values;
 }
예제 #8
0
 /// <summary>
 /// Initializes the contrast enhancement filter.
 /// </summary>
 /// <param name="width">Filter width</param>
 /// <param name="height">Filter height</param>
 /// <param name="space">Color space</param>
 /// <param name="a">Contrast [-1, 1]</param>
 /// <param name="b">Offset [-1, 1]</param>
 public KsiContrastEnhancement(int width, int height, Space space, float a = 0.75f, float b = 0.05f)
 {
     gb    = new BoxBlur(width, height);
     Space = space; A = a; B = b;
 }
예제 #9
0
 /// <summary>
 /// Initializes the shadows and lights correction filter.
 /// </summary>
 /// <param name="size">Radius</param>
 /// <param name="space">Color space</param>
 /// <param name="shadows">Shadows [0, 1]</param>
 /// <param name="highlights">Highlights [0, 1]</param>
 public ShadowsHighlightsCorrection(SizeInt size, Space space, float shadows = 0.4f, float highlights = 0.4f)
 {
     gb    = new BoxBlur(size);
     Space = space; Shadows = shadows; Highlights = highlights;
 }
예제 #10
0
 /// <summary>
 /// Initializes the local mask correction filter.
 /// </summary>
 public LocalCorrection()
 {
     gb     = new BoxBlur(3);
     Space  = Space.RGB;
     Values = new float[256, 256];
 }
예제 #11
0
 /// <summary>
 /// Initializes the shadows and lights correction filter.
 /// </summary>
 /// <param name="width">Filter width</param>
 /// <param name="height">Filter height</param>
 /// <param name="space">Color space</param>
 /// <param name="shadows">Shadows [0, 1]</param>
 /// <param name="highlights">Highlights [0, 1]</param>
 public ShadowsHighlightsCorrection(int width, int height, Space space, float shadows = 0.4f, float highlights = 0.4f)
 {
     gb    = new BoxBlur(width, height);
     Space = space; Shadows = shadows; Highlights = highlights;
 }
예제 #12
0
 /// <summary>
 /// Initializes the shadows and lights correction filter.
 /// </summary>
 /// <param name="radius">Radius</param>
 /// <param name="space">Color space</param>
 /// <param name="shadows">Shadows [0, 1]</param>
 /// <param name="highlights">Highlights [0, 1]</param>
 public ShadowsHighlightsCorrection(int radius, Space space, float shadows = 0.4f, float highlights = 0.4f)
 {
     gb    = new BoxBlur(radius);
     Space = space; Shadows = shadows; Highlights = highlights;
 }
예제 #13
0
 /// <summary>
 /// Initializes the flat-field correction filter.
 /// </summary>
 /// <param name="size">Radius</param>
 public FlatFieldCorrection(SizeInt size)
 {
     gb = new BoxBlur(size);
 }
예제 #14
0
 /// <summary>
 /// Initializes the Single Scale Retinex filter.
 /// </summary>
 /// <param name="size">Radius</param>
 /// <param name="space">Color space</param>
 /// <param name="a">Contrast [-1, 1]</param>
 /// <param name="b">Offset (0, 1]</param>
 /// <param name="nbase">Logarithm base</param>
 public SingleScaleRetinex(SizeInt size, Space space, float a = 1, float b = 0, float nbase = Maths.Pi)
 {
     gb    = new BoxBlur(size);
     Space = space; A = a; B = b; Base = nbase;
 }
예제 #15
0
 /// <summary>
 /// Initializes the local mask correction filter.
 /// </summary>
 /// <param name="width">Filter width</param>
 /// <param name="height">Filter height</param>
 /// <param name="space">Color space</param>
 /// <param name="values">Matrix mask</param>
 public LocalCorrection(int width, int height, float[,] values, Space space)
 {
     gb     = new BoxBlur(width, height);
     Space  = space;
     Values = values;
 }
예제 #16
0
 /// <summary>
 /// Initializes the contrast enhancement filter.
 /// </summary>
 /// <param name="radius">Radius</param>
 /// <param name="space">Color space</param>
 /// <param name="a">Contrast [-1, 1]</param>
 /// <param name="b">Offset [-1, 1]</param>
 public KsiContrastEnhancement(int radius, Space space, float a = 0.75f, float b = 0.05f)
 {
     gb    = new BoxBlur(radius);
     Space = space; A = a; B = b;
 }
예제 #17
0
 /// <summary>
 /// Initializes the local mask correction filter.
 /// </summary>
 /// <param name="size">Filter size</param>
 /// <param name="space">Color space</param>
 /// <param name="values">Matrix mask</param>
 public LocalCorrection(SizeInt size, float[,] values, Space space)
 {
     gb     = new BoxBlur(size);
     Space  = space;
     Values = values;
 }
예제 #18
0
 /// <summary>
 /// Initializes the contrast enhancement filter.
 /// </summary>
 /// <param name="size">Radius</param>
 /// <param name="space">Color space</param>
 /// <param name="a">Contrast [-1, 1]</param>
 /// <param name="b">Offset [-1, 1]</param>
 public KsiContrastEnhancement(SizeInt size, Space space, float a = 0.75f, float b = 0.05f)
 {
     gb    = new BoxBlur(size);
     Space = space; A = a; B = b;
 }
예제 #19
0
 /// <summary>
 /// Initializes the local contrast enhancement filter.
 /// </summary>
 /// <param name="radius">Radius</param>
 /// <param name="space">Color space</param>
 /// <param name="contrast">Contrast [-1, 1]</param>
 public LocalContrastEnhancement(int radius, Space space, float contrast = 0.75f)
 {
     gb    = new BoxBlur(radius);
     Space = space; Contrast = contrast;
 }
예제 #20
0
 /// <summary>
 /// Initializes the filter for homomorphic processing.
 /// </summary>
 /// <param name="width">Filter width</param>
 /// <param name="height">Filter height</param>
 /// <param name="space">Color space</param>
 /// <param name="a">Contrast [-1, 1]</param>
 /// <param name="b">Offset (0, 1]</param>
 public HomomorphicEnhancement(int width, int height, Space space, float a = 0.5f, float b = 0.05f)
 {
     gb    = new BoxBlur(width, height);
     Space = space; A = a; B = b;
 }
예제 #21
0
 /// <summary>
 /// Initializes the local contrast enhancement filter.
 /// </summary>
 /// <param name="width">Filter width</param>
 /// <param name="height">Filter height</param>
 /// <param name="space">Color space</param>
 /// <param name="contrast">Contrast [-1, 1]</param>
 public LocalContrastEnhancement(int width, int height, Space space, float contrast = 0.75f)
 {
     gb    = new BoxBlur(width, height);
     Space = space; Contrast = contrast;
 }
예제 #22
0
 /// <summary>
 /// Initializes the Bradley local threshold filter.
 /// </summary>
 /// <param name="radius">Radius</param>
 /// <param name="space">Color space</param>
 /// <param name="difference">Difference [0, 1]</param>
 public LocalThreshold(int radius, Space space, float difference = 0.15f)
 {
     gb         = new BoxBlur(radius);
     Difference = difference;
     Space      = space;
 }
예제 #23
0
 /// <summary>
 /// Initializes the local contrast enhancement filter.
 /// </summary>
 /// <param name="size">Filter size</param>
 /// <param name="space">Color space</param>
 /// <param name="contrast">Contrast [-1, 1]</param>
 public LocalContrastEnhancement(SizeInt size, Space space, float contrast = 0.75f)
 {
     gb    = new BoxBlur(size);
     Space = space; Contrast = contrast;
 }
예제 #24
0
 /// <summary>
 /// Initializes the Bradley local threshold filter.
 /// </summary>
 /// <param name="size">Radius</param>
 /// <param name="space">Color space</param>
 /// <param name="difference">Difference [0, 1]</param>
 public LocalThreshold(SizeInt size, Space space, float difference = 0.15f)
 {
     gb         = new BoxBlur(size);
     Difference = difference;
     Space      = space;
 }
예제 #25
0
        private float mB;      // mean of blue channel.
        #endregion

        #region Filter components
        /// <summary>
        /// Initializes the flat-field correction filter.
        /// </summary>
        /// <param name="radius">Radius</param>
        public FlatFieldCorrection(int radius = 15)
        {
            gb = new BoxBlur(radius);
        }