コード例 #1
0
        /// <summary>
        /// Find magnitudes of Fourier transfotm and print it in file
        /// </summary>
        /// <param name="image">Square image wich sides size is power of 2</param>
        /// <param name="outputPath">Path to print image</param>
        public static void PrintFourierMagnitudes(KrecImage image, string outputPath)
        {
            int colorsCount = image.Width * image.Height;
            var resultBytes = new byte[image.Width * image.Height];

            var rc = new double[colorsCount];

            for (var i = 0; i < colorsCount; ++i)
            {
                rc[i] = image.ImageData[i] / 255.0;
            }

            rc = SkewAngleDeterminer.FindMagnitudes(rc, image.Width);

            for (var i = 0; i < colorsCount; ++i)
            {
                resultBytes[i] = (byte)Math.Min(255, rc[i] * 10000);
            }

            var krecImage = new KrecImage(
                image.Width, image.Height, image.Width, image.HorizontalResolution, image.VerticalResolution,
                image.Format, resultBytes);

            Print8BppImage(krecImage, outputPath);
        }
コード例 #2
0
        /// <summary>
        /// Find magnitudes of Fourier transfotm and print it in file
        /// </summary>
        /// <param name="image">Square image wich sides size is power of 2</param>
        /// <param name="outputPath">Path to print image</param>
        public static void PrintFourierBrightestPoints(KrecImage image, string outputPath)
        {
            var resultBytes     = new byte[image.Width * image.Height];
            var brightestPoints = SkewAngleDeterminer.GetBrightestPoints(image, 3000);

            foreach (var point in brightestPoints)
            {
                resultBytes[point.Y * image.Width + point.X] = 255;
            }

            var krecImage = new KrecImage(
                image.Width, image.Height, image.Width, image.HorizontalResolution, image.VerticalResolution,
                image.Format, resultBytes);

            Print8BppImage(krecImage, outputPath);
        }