/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
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]; }
/// <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); }
/// <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); }