/// <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); }
/// <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); }