Emgu.CV.CvInvoke.CvCascadeClassifierDetectMultiScale C# (CSharp) Метод

CvCascadeClassifierDetectMultiScale() приватный Метод

private CvCascadeClassifierDetectMultiScale ( IntPtr classifier, IntPtr image, IntPtr objects, double scaleFactor, int minNeighbors, int flags, Size minSize, Size maxSize ) : void
classifier IntPtr
image IntPtr
objects IntPtr
scaleFactor double
minNeighbors int
flags int
minSize Size
maxSize Size
Результат void
        internal static extern void CvCascadeClassifierDetectMultiScale(
         IntPtr classifier,
         IntPtr image,
         IntPtr objects,
         double scaleFactor,
         int minNeighbors, int flags,
         Size minSize,
         Size maxSize);

Usage Example

Пример #1
0
        /// <summary>
        /// Finds rectangular regions in the given image that are likely to contain objects the cascade has been trained for and returns those regions as a sequence of rectangles.
        /// The function scans the image several times at different scales. Each time it considers overlapping regions in the image.
        /// It may also apply some heuristics to reduce number of analyzed regions, such as Canny prunning.
        /// After it has proceeded and collected the candidate rectangles (regions that passed the classifier cascade), it groups them and returns a sequence of average rectangles for each large enough group.
        /// </summary>
        /// <param name="image">The image where the objects are to be detected from</param>
        /// <param name="scaleFactor">The factor by which the search window is scaled between the subsequent scans, for example, 1.1 means increasing window by 10%</param>
        /// <param name="minNeighbors">Minimum number (minus 1) of neighbor rectangles that makes up an object. All the groups of a smaller number of rectangles than min_neighbors-1 are rejected. If min_neighbors is 0, the function does not any grouping at all and returns all the detected candidate rectangles, which may be useful if the user wants to apply a customized grouping procedure</param>
        /// <param name="minSize">Minimum window size. Use Size.Empty for default, where it is set to the size of samples the classifier has been trained on (~20x20 for face detection)</param>
        /// <param name="maxSize">Maxumum window size. Use Size.Empty for default, where the parameter will be ignored.</param>
        /// <returns>The objects detected, one array per channel</returns>
        public Rectangle[] DetectMultiScale(Image <Gray, Byte> image, double scaleFactor, int minNeighbors, Size minSize, Size maxSize)
        {
            using (MemStorage stor = new MemStorage())
            {
                Seq <Rectangle> rectangles = new Seq <Rectangle>(stor);

                CvInvoke.CvCascadeClassifierDetectMultiScale(_ptr, image, rectangles, scaleFactor, minNeighbors, 0, minSize, maxSize);
                return(rectangles.ToArray());
            }
        }
CvInvoke