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
Пример #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());
            }
        }