一些经典的Math高效率算法

分享一些经典的Math高效率运算算法,值得收藏

		int Average(int a, int b)
		{
			return (a + b + 1) >> 1;
		}

		int Average(int a, int b, int c, int d)
		{
			return (a + b + c + d + 2) >> 2;
		}

		void SortU8(int & a, int & b)
		{
			int d = a - b;
			int m = ~(d >> 8);
			b += d & m;
			a -= d & m;
		}

		int AbsDifferenceU8(int a, int b)
		{
			int d = a - b;
			int m = d >> 8;
			return (d & ~m)|(-d & m);
		}
        int Min(int a, int b)
        {
            return a < b ? a : b;
        }

        int Max(int a, int b)
        {
            return a > b ? a : b;
        }

		int RestrictRange(int value, int min = 0, int max = 255)
		{
			return Max(min, Min(max, value));
		}

        int Square(int a)
        {
            return a*a;
        }

        int SquaredDifference(int a, int b)
        {
            return Square(a - b);
        }

		int AbsDifference(int a, int b)
		{
			return a > b ? a - b : b - a;
		}


	

你可能感兴趣的:(OpenCV源码讲解,opencv,QT,算法,数据结构,qt,c++,计算机视觉)