private void ScaleSpectrum(SpectralImage spetralImage, Func <float, float, float> scalingFunction) { float max = spetralImage.Image.Max(f => Math.Abs(f)); for (int i = 0; i < spetralImage.Image.Length; ++i) { spetralImage.Image[i] = scalingFunction(spetralImage.Image[i], max); } }
private float[][] Transform2D(SpectralImage spectralImage) { float[][] transformed = new float[spectralImage.Rows][]; for (int i = 0; i < spectralImage.Rows; ++i) { transformed[i] = new float[spectralImage.Cols]; Buffer.BlockCopy(spectralImage.Image, i * spectralImage.Cols * sizeof(float), transformed[i], 0, spectralImage.Cols * sizeof(float)); } return(transformed); }