private Mat preprocessShape(OpenCvSharp.CPlusPlus.Rect shapeRect, Mat sceneMat) { var matRect = new OpenCvSharp.CPlusPlus.Rect(0, 0, sceneMat.Width, sceneMat.Height); shapeRect.Inflate((int)(shapeRect.Width * 0.1), (int)(shapeRect.Height * 0.1)); shapeRect = shapeRect.Intersect(matRect); Mat shapeMat = sceneMat.SubMat(shapeRect); var size = new OpenCvSharp.CPlusPlus.Size(128, 128); shapeMat = shapeMat.Resize(size); return(shapeMat); }
/// <summary> /// このCvRectを指定の量だけ膨らませる /// </summary> /// <param name="rect">対象の矩形</param> /// <param name="x">水平方向の膨張量</param> /// <param name="y">垂直方向の膨張量</param> /// <returns></returns> #else /// <summary> /// Creates and returns an inflated copy of the specified CvRect structure. /// </summary> /// <param name="rect">The Rectangle with which to start. This rectangle is not modified. </param> /// <param name="x">The amount to inflate this Rectangle horizontally. </param> /// <param name="y">The amount to inflate this Rectangle vertically. </param> /// <returns></returns> #endif public static Rect Inflate(Rect rect, int x, int y) { rect.Inflate(x, y); return(rect); }