コード例 #1
0
ファイル: RayImage.cs プロジェクト: wvannoordt/raysharp
        public static RayImage ArrayLogRange(double[,] imagedata_in, ColorGradient c)
        {
            int ni = imagedata_in.GetLength(0);
            int nj = imagedata_in.GetLength(1);

            double[,] imagedata = new double[ni, nj];
            for (int i = 0; i < ni; i++)
            {
                for (int j = 0; j < nj; j++)
                {
                    imagedata[i, j] = Math.Log10(Math.Abs(imagedata_in[i, j]) + 1e-10);
                }
            }
            RayImage output = new RayImage(ni, nj);
            double   minn   = double.PositiveInfinity;
            double   maxx   = double.NegativeInfinity;

            for (int i = 0; i < ni; i++)
            {
                for (int j = 0; j < nj; j++)
                {
                    maxx = (imagedata[i, j] > maxx) ? imagedata[i, j] : maxx;
                    minn = (imagedata[i, j] < minn) ? imagedata[i, j] : minn;
                }
            }
            for (int i = 0; i < ni; i++)
            {
                for (int j = 0; j < nj; j++)
                {
                    output.SetPixel(i, j, c.GetColor(imagedata[i, j], minn, maxx));
                }
            }
            return(output);
        }
コード例 #2
0
ファイル: RayImage.cs プロジェクト: wvannoordt/raysharp
        public static RayImage ArrayRangeXY(double[,] imagedata, ColorGradient c)
        {
            int      ni     = imagedata.GetLength(0);
            int      nj     = imagedata.GetLength(1);
            RayImage output = new RayImage(ni, nj);
            double   minn   = double.PositiveInfinity;
            double   maxx   = double.NegativeInfinity;

            for (int i = 0; i < ni; i++)
            {
                for (int j = 0; j < nj; j++)
                {
                    maxx = (imagedata[i, j] > maxx) ? imagedata[i, j] : maxx;
                    minn = (imagedata[i, j] < minn) ? imagedata[i, j] : minn;
                }
            }
            for (int i = 0; i < ni; i++)
            {
                for (int j = 0; j < nj; j++)
                {
                    Triple col = c.GetColor(imagedata[i, j], minn, maxx);
                    output.SetPixelXY(i, j, col);
                }
            }
            return(output);
        }