Esempio n. 1
0
        protected void DoWindowPass <T>(Matrix input, int row, int column, int localWindowSize, PixelPass <T> passFunc, T arg)
        {
            int   i;
            int   j;
            float value;
            int   width  = input.ColumnCount;
            int   height = input.RowCount;

            int windowRadius = localWindowSize / 2; //this will ignore any remainder
            int row2;
            int column2;

            for (i = 0; i < 2 * windowRadius + 1; i++)
            {
                if (row - windowRadius + i < 0)
                {
                    continue;
                }
                if (row - windowRadius + i >= height)
                {
                    break;
                }

                row2 = row - windowRadius + i;

                for (j = 0; j < 2 * windowRadius + 1; j++)
                {
                    if (column - windowRadius + j < 0)
                    {
                        continue;
                    }
                    if (column - windowRadius + j >= width)
                    {
                        break;
                    }

                    column2 = column - windowRadius + j;

                    value = input[row2, column2];

                    DoPixelPass <T>(passFunc, value, row2, column2, i, j, arg);
                }
            }
        }
Esempio n. 2
0
 protected void DoPixelPass <T>(PixelPass <T> passFunc, float value, int pixelRow, int pixelColumn, int rowWithinWindow, int columnWithinWindow, T arg)
 {
     passFunc(value, pixelRow, pixelColumn, rowWithinWindow, columnWithinWindow, arg);
 }
Esempio n. 3
0
        //protected void DoWindowPass<T>(Matrix input, int row, int column, PixelPass<T> passFunc)
        //{
        //    DoWindowPass(input, row, column, passFunc, default(T));
        //}

        protected void DoWindowPass <T>(Matrix input, int row, int column, PixelPass <T> passFunc, T arg)
        {
            DoWindowPass(input, row, column, WindowSize, passFunc, arg);
        }