Exemplo n.º 1
0
        /// <summary>
        /// Вычисление функции плотности в окрестности данной точки
        /// </summary>
        /// <param name="point">Координаты точки</param>
        /// <returns>Значение функции плотности в окрестности данной точки</returns>
        private double CalculateDensityInPoint(Point point)
        {
            int[] windows = { 2, 3, 4, 5, 7 };

            var points = windows
                         .Select(windowSize =>
            {
                double intens = CalculateIntensivity(point, windowSize);

                double x = Math.Log(2 * windowSize + 1);
                double y = Math.Log(intens + 1);

                return(x, y);
            })
                         .ToList();

            return(LeastSquares.ApplyMethod(points));
        }
        /// <summary>
        /// Вычисление фрактальной размерности изображения
        /// </summary>
        /// <param name="image">Анализируемое изображение</param>
        /// <returns>Фрактальная размерность изображения</returns>
        private double CalculateMeasure(DirectBitmap image)
        {
            int[] windows = { 3, 4, 5, 6, 7, 8 };

            var points = windows
                         .Select(windowSize =>
            {
                double intens = CalculateBlackWindows(image, windowSize);

                double x = Math.Log(windowSize);
                double y = Math.Log(intens + 1);

                return(x, y);
            })
                         .ToList();

            return(-LeastSquares.ApplyMethod(points));
        }