示例#1
0
        // .......ooooooooo
        // .......ooooooooo
        // .......ooooooooo
        // .......ooooooooo
        public static double Filter2(IntegralImage image, int x, int y, int w, int h, Func <double, double, double> cmp)
        {
            //Debug.Assert(x >= 0);
            //Debug.Assert(y >= 0);
            //Debug.Assert(w >= 1);
            //Debug.Assert(h >= 1);

            int w_2 = w / 2;

            double a = image.Area(x + w_2, y, x + w - 1, y + h - 1);
            double b = image.Area(x, y, x + w_2 - 1, y + h - 1);

            return(cmp(a, b));
        }
示例#2
0
        // ................
        // oooooooooooooooo
        // ................
        public static double Filter4(IntegralImage image, int x, int y, int w, int h, Func <double, double, double> cmp)
        {
            //Debug.Assert(x >= 0);
            //Debug.Assert(y >= 0);
            //Debug.Assert(w >= 1);
            //Debug.Assert(h >= 1);

            int h_3 = h / 3;

            double a = image.Area(x, y + h_3, x + w - 1, y + 2 * h_3 - 1);
            double b = image.Area(x, y, x + w - 1, y + h_3 - 1) +
                       image.Area(x, y + 2 * h_3, x + w - 1, y + h - 1);

            return(cmp(a, b));
        }