Ejemplo n.º 1
0
        /// <summary>
        /// 隣接ピクセルの形状を決定する指定された構造要素を用いて,入力画像を膨張する. 
        /// この関数はインプレースモード(src=dstである入力)をサポートする.膨張は複数回 (iterations) 繰り返すことができる.
        /// カラー画像の場合は,それぞれのチャンネルが独立に処理される. 
        /// </summary>
        /// <param name="src">入力画像</param>
        /// <param name="dst">出力画像</param>
        /// <param name="element">膨張に用いる構造要素.nullの場合は, 3×3 の矩形形状の構造要素を用いる.</param>
        /// <param name="iterations">膨張の回数</param>
#else
        /// <summary>
        /// Dilates image by using arbitrary structuring element.
        /// </summary>
        /// <param name="src">Source image.</param>
        /// <param name="dst">Destination image. </param>
        /// <param name="element">Structuring element used for erosion. If it is null, a 3x3 rectangular structuring element is used. </param>
        /// <param name="iterations">Number of times erosion is applied. </param>
#endif
        public static void Dilate(CvArr src, CvArr dst, IplConvKernel element, int iterations)
        {
            if (src == null)
                throw new ArgumentNullException("src");
            if (dst == null)
                throw new ArgumentNullException("dst");
            IntPtr elemPtr = (element == null) ? IntPtr.Zero : element.CvPtr;
            NativeMethods.cvDilate(src.CvPtr, dst.CvPtr, elemPtr, iterations);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 隣接ピクセルの形状を決定する指定された構造要素を用いて,入力画像を膨張する.
        /// この関数はインプレースモード(src=dstである入力)をサポートする.膨張は複数回 (iterations) 繰り返すことができる.
        /// カラー画像の場合は,それぞれのチャンネルが独立に処理される.
        /// </summary>
        /// <param name="src">入力画像</param>
        /// <param name="dst">出力画像</param>
        /// <param name="element">膨張に用いる構造要素.nullの場合は, 3×3 の矩形形状の構造要素を用いる.</param>
        /// <param name="iterations">膨張の回数</param>
#else
        /// <summary>
        /// Dilates image by using arbitrary structuring element.
        /// </summary>
        /// <param name="src">Source image.</param>
        /// <param name="dst">Destination image. </param>
        /// <param name="element">Structuring element used for erosion. If it is null, a 3x3 rectangular structuring element is used. </param>
        /// <param name="iterations">Number of times erosion is applied. </param>
#endif
        public static void Dilate(CvArr src, CvArr dst, IplConvKernel element, int iterations)
        {
            if (src == null)
            {
                throw new ArgumentNullException(nameof(src));
            }
            if (dst == null)
            {
                throw new ArgumentNullException(nameof(dst));
            }
            NativeMethods.cvDilate(src.CvPtr, dst.CvPtr, ToPtr(element), iterations);
            KeepAlive(src, dst, element);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 隣接ピクセルの形状を決定する指定された構造要素を用いて,入力画像を収縮する. 
        /// この関数はインプレースモード(src=dstである入力)をサポートする.収縮は複数回 (iterations) 繰り返すことができる.
        /// カラー画像の場合は,それぞれのチャンネルが独立に処理される. 
        /// </summary>
        /// <param name="src">入力画像</param>
        /// <param name="dst">出力画像</param>
        /// <param name="element">収縮に用いる構造要素.nullの場合は, 3×3 の矩形形状の構造要素を用いる.</param>
        /// <param name="iterations">収縮の回数</param>
#else
        /// <summary>
        /// Erodes image by using arbitrary structuring element.
        /// </summary>
        /// <param name="src">Source image. </param>
        /// <param name="dst">Destination image. </param>
        /// <param name="element">Structuring element used for erosion. If it is null, a 3x3 rectangular structuring element is used. </param>
        /// <param name="iterations">Number of times erosion is applied. </param>
#endif
        public static void Erode(CvArr src, CvArr dst, IplConvKernel element, int iterations)
        {
            if (src == null)
                throw new ArgumentNullException("src");
            if (dst == null)
                throw new ArgumentNullException("dst");
            IntPtr elem_ptr = (element == null) ? IntPtr.Zero : element.CvPtr;
            CvInvoke.cvErode(src.CvPtr, dst.CvPtr, elem_ptr, iterations);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 隣接ピクセルの形状を決定する指定された構造要素を用いて,入力画像を収縮する. 
        /// この関数はインプレースモード(src=dstである入力)をサポートする.収縮は複数回 (iterations) 繰り返すことができる.
        /// カラー画像の場合は,それぞれのチャンネルが独立に処理される. 
        /// </summary>
        /// <param name="src">入力画像</param>
        /// <param name="dst">出力画像</param>
        /// <param name="element">収縮に用いる構造要素.nullの場合は, 3×3 の矩形形状の構造要素を用いる.</param>
#else
        /// <summary>
        /// Erodes image by using arbitrary structuring element.
        /// </summary>
        /// <param name="src">Source image. </param>
        /// <param name="dst">Destination image. </param>
        /// <param name="element">Structuring element used for erosion. If it is null, a 3x3 rectangular structuring element is used. </param>
#endif
        public static void Erode(CvArr src, CvArr dst, IplConvKernel element)
        {
            Erode(src, dst, element, 1);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 隣接ピクセルの形状を決定する指定された構造要素を用いて,入力画像を膨張する.
        /// この関数はインプレースモード(src=dstである入力)をサポートする.膨張は複数回 (iterations) 繰り返すことができる.
        /// カラー画像の場合は,それぞれのチャンネルが独立に処理される.
        /// </summary>
        /// <param name="src">入力画像</param>
        /// <param name="dst">出力画像</param>
        /// <param name="element">膨張に用いる構造要素.nullの場合は, 3×3 の矩形形状の構造要素を用いる.</param>
#else
        /// <summary>
        /// Dilates image by using arbitrary structuring element.
        /// </summary>
        /// <param name="src">Source image.</param>
        /// <param name="dst">Destination image. </param>
        /// <param name="element">Structuring element used for erosion. If it is null, a 3x3 rectangular structuring element is used. </param>
#endif
        public static void Dilate(CvArr src, CvArr dst, IplConvKernel element)
        {
            Dilate(src, dst, element, 1);
        }
Ejemplo n.º 6
0
            public IplImage thr_image; /* After filtering and thresholding */

            #endregion Fields

            #region Constructors

            public HandDetectorCTX(IplImage source)
            {
                image = source.Clone();
                thr_image = new IplImage(image.Size, BitDepth.U8, 1);
                temp_image1 = new IplImage(image.Size, BitDepth.U8, 1);
                temp_image3 = new IplImage(image.Size, BitDepth.U8, 3);
                kernel = new IplConvKernel(9, 9, 4, 4, ElementShape.Rect, null);
                contour_st = new CvMemStorage();
                hull_st = new CvMemStorage();
                temp_st = new CvMemStorage();
                fingers = new CvPoint[NUM_FINGERS];
                defects = new CvPoint[NUM_DEFECTS];
            }
Ejemplo n.º 7
0
        /// <summary>
        /// 隣接ピクセルの形状を決定する指定された構造要素を用いて,入力画像を膨張する. 
        /// この関数はインプレースモード(src=dstである入力)をサポートする.膨張は複数回 (iterations) 繰り返すことができる.
        /// カラー画像の場合は,それぞれのチャンネルが独立に処理される. 
        /// </summary>
        /// <param name="src">入力画像</param>
        /// <param name="dst">出力画像</param>
        /// <param name="element">膨張に用いる構造要素.nullの場合は, 3×3 の矩形形状の構造要素を用いる.</param>
        /// <param name="iterations">膨張の回数</param>
#else
        /// <summary>
        /// Dilates image by using arbitrary structuring element.
        /// </summary>
        /// <param name="src">Source image.</param>
        /// <param name="dst">Destination image. </param>
        /// <param name="element">Structuring element used for erosion. If it is null, a 3x3 rectangular structuring element is used. </param>
        /// <param name="iterations">Number of times erosion is applied. </param>
#endif
        public static void Dilate(CvArr src, CvArr dst, IplConvKernel element, int iterations)
        {
            if (src == null)
                throw new ArgumentNullException("src");
            if (dst == null)
                throw new ArgumentNullException("dst");
            IntPtr elemPtr = (element == null) ? IntPtr.Zero : element.CvPtr;
            NativeMethods.cvDilate(src.CvPtr, dst.CvPtr, elemPtr, iterations);
        }
Ejemplo n.º 8
0
        /// <summary>
        /// 隣接ピクセルの形状を決定する指定された構造要素を用いて,入力画像を膨張する. 
        /// この関数はインプレースモード(src=dstである入力)をサポートする.膨張は複数回 (iterations) 繰り返すことができる.
        /// カラー画像の場合は,それぞれのチャンネルが独立に処理される. 
        /// </summary>
        /// <param name="src">入力画像</param>
        /// <param name="dst">出力画像</param>
        /// <param name="element">膨張に用いる構造要素.nullの場合は, 3×3 の矩形形状の構造要素を用いる.</param>
#else
        /// <summary>
        /// Dilates image by using arbitrary structuring element.
        /// </summary>
        /// <param name="src">Source image.</param>
        /// <param name="dst">Destination image. </param>
        /// <param name="element">Structuring element used for erosion. If it is null, a 3x3 rectangular structuring element is used. </param>
#endif
        public static void Dilate(CvArr src, CvArr dst, IplConvKernel element)
        {
            Dilate(src, dst, element, 1);
        }