示例#1
0
 public static void WholeAmplify(AmplifyType type, double k = 1)
 {
     Parallel.For(0, slices.Length, tn =>
     {
         slices[tn] = Amplify(slices[tn], type, k);
     });
 }
示例#2
0
        public static float[,] Amplify(float[,] data, AmplifyType type, double k = 1)
        {
            var w       = data.GetLength(0);
            var h       = data.GetLength(1);
            var newData = new float[w, h];

            for (int i = 0; i < w; i++)
            {
                for (int j = 0; j < h; j++)
                {
                    switch (type)
                    {
                    case AmplifyType.linear:
                        newData[i, j] = data[i, j] * (1 + j * (float)k);
                        break;

                    case AmplifyType.log:
                        newData[i, j] = data[i, j] * (1 + (float)Math.Log(1 + j, k));
                        break;

                    case AmplifyType.pow:
                        newData[i, j] = data[i, j] * (1 + (float)Math.Pow(k, j));
                        break;
                    }
                }
            }
            return(newData);
        }