CatEye.Core.HistogramCollector.FindLowTailLightness C# (CSharp) Метод

FindLowTailLightness() публичный Метод

public FindLowTailLightness ( double valueAtLeast ) : int
valueAtLeast double
Результат int
        public int FindLowTailLightness(double valueAtLeast)
        {
            for (int i = 0; i < mLines; i++)
            {
                if (GetLightHistogramLine(i) > valueAtLeast) return i;
            }
            return 0;
        }

Usage Example

Пример #1
0
        public void CutBlackPoint(double cut, int blur_radius, double blur_dark_level, int lines, double tailValueAtLeast, ProgressReporter callback)
        {
            double max_light = CalcMaxLight();

            HistogramCollector sc = new HistogramCollector(max_light, lines);
            sc.CollectData(this);
            double min_tail = sc.LineToScale(sc.FindLowTailLightness(tailValueAtLeast));
            double max_tail = sc.LineToScale(sc.FindHighTailLightness(tailValueAtLeast));

            for (int j = 0; j < mHeight; j++)
            {
                if (j % REPORT_EVERY_NTH_LINE == 0 && callback != null)
                {
                    if (!callback((double)j / this.mHeight * 0.3)) return;
                }

                for (int i = 0; i < mWidth; i++)
                {
                    double light = Math.Sqrt(
                                    r_chan[i, j] * r_chan[i, j] +
                                  	g_chan[i, j] * g_chan[i, j] +
                                    b_chan[i, j] * b_chan[i, j]) / Math.Sqrt(3);

                    Tone curtone = new Tone(r_chan[i, j], g_chan[i, j], b_chan[i, j]);

                    double newlight = light - min_tail * cut;
                    if (newlight < 0) newlight = 0;

                    lock (this)
                    {
                        r_chan[i, j] = (float)(curtone.R * newlight);
                        g_chan[i, j] = (float)(curtone.G * newlight);
                        b_chan[i, j] = (float)(curtone.B * newlight);
                    }
                }
            }
        }