コード例 #1
0
        // quadtree.c (169, 1)
        // pixQuadtreeVariance(pixs, nlevels, pix_ma, dpix_msa, pfpixa_v, pfpixa_rv) as int
        // pixQuadtreeVariance(PIX *, l_int32, PIX *, DPIX *, FPIXA **, FPIXA **) as l_ok
        ///  <summary>
        /// (1) The returned fpixav and fpixarv have %nlevels of fpix,
        /// each containing at the respective levels the variance
        /// and root variance values.
        ///  </summary>
        ///  <remarks>
        ///  </remarks>
        ///  <include file="..\CHM_Help\IncludeComments.xml" path="Comments/pixQuadtreeVariance/*"/>
        ///  <param name="pixs">[in] - 8 bpp, no colormap</param>
        ///  <param name="nlevels">[in] - in quadtree</param>
        ///  <param name="pix_ma">[in] - input mean accumulator can be null</param>
        ///  <param name="dpix_msa">[in] - input mean square accumulator can be null</param>
        ///  <param name="pfpixa_v">[out][optional] - variance values in quadtree</param>
        ///  <param name="pfpixa_rv">[out][optional] - root variance values in quadtree</param>
        ///   <returns>0 if OK, 1 on error</returns>
        public static int pixQuadtreeVariance(
            Pix pixs,
            int nlevels,
            Pix pix_ma,
            DPix dpix_msa,
            out FPixa pfpixa_v,
            out FPixa pfpixa_rv)
        {
            if (pixs == null)
            {
                throw new ArgumentNullException("pixs cannot be Nothing");
            }

            if (pix_ma == null)
            {
                throw new ArgumentNullException("pix_ma cannot be Nothing");
            }

            if (dpix_msa == null)
            {
                throw new ArgumentNullException("dpix_msa cannot be Nothing");
            }

            IntPtr pfpixa_vPtr  = IntPtr.Zero;
            IntPtr pfpixa_rvPtr = IntPtr.Zero;
            int    _Result      = Natives.pixQuadtreeVariance(pixs.Pointer, nlevels, pix_ma.Pointer, dpix_msa.Pointer, out pfpixa_vPtr, out pfpixa_rvPtr);

            if (pfpixa_vPtr == IntPtr.Zero)
            {
                pfpixa_v = null;
            }
            else
            {
                pfpixa_v = new FPixa(pfpixa_vPtr);
            };
            if (pfpixa_rvPtr == IntPtr.Zero)
            {
                pfpixa_rv = null;
            }
            else
            {
                pfpixa_rv = new FPixa(pfpixa_rvPtr);
            };

            return(_Result);
        }
コード例 #2
0
        // quadtree.c (341, 1)
        // pixVarianceInRectangle(pixs, box, pix_ma, dpix_msa, pvar, prvar) as int
        // pixVarianceInRectangle(PIX *, BOX *, PIX *, DPIX *, l_float32 *, l_float32 *) as l_ok
        ///  <summary>
        /// (1) This function is intended to be used for many rectangles
        /// on the same image.  It can find the variance and/or the
        /// square root of the variance within a rectangle in O(1),
        /// independent of the size of the rectangle.
        ///  </summary>
        ///  <remarks>
        ///  </remarks>
        ///  <include file="..\CHM_Help\IncludeComments.xml" path="Comments/pixVarianceInRectangle/*"/>
        ///  <param name="pixs">[in] - 8 bpp</param>
        ///  <param name="box">[in] - region to compute variance and/or root variance</param>
        ///  <param name="pix_ma">[in] - mean accumulator</param>
        ///  <param name="dpix_msa">[in] - mean square accumulator</param>
        ///  <param name="pvar">[out][optional] - variance</param>
        ///  <param name="prvar">[out][optional] - root variance</param>
        ///   <returns>0 if OK, 1 on error</returns>
        public static int pixVarianceInRectangle(
            Pix pixs,
            Box box,
            Pix pix_ma,
            DPix dpix_msa,
            out Single pvar,
            out Single prvar)
        {
            if (pixs == null)
            {
                throw new ArgumentNullException("pixs cannot be Nothing");
            }

            if (box == null)
            {
                throw new ArgumentNullException("box cannot be Nothing");
            }

            if (pix_ma == null)
            {
                throw new ArgumentNullException("pix_ma cannot be Nothing");
            }

            if (dpix_msa == null)
            {
                throw new ArgumentNullException("dpix_msa cannot be Nothing");
            }

            if ((new List <int> {
                8
            }).Contains((int)pixs.d) == false)
            {
                throw new ArgumentException("8 bpp");
            }
            int _Result = Natives.pixVarianceInRectangle(pixs.Pointer, box.Pointer, pix_ma.Pointer, dpix_msa.Pointer, out pvar, out prvar);

            return(_Result);
        }