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.

Namespace: Emgu.CV
Assembly: Emgu.CV (in Emgu.CV.dll) Version: (


public Rectangle[] DetectMultiScale(
	Image<Gray, byte> image,
	double scaleFactor,
	int minNeighbors,
	Size minSize,
	Size maxSize
Visual Basic
Public Function DetectMultiScale ( 
	image As Image(Of Gray, Byte),
	scaleFactor As Double,
	minNeighbors As Integer,
	minSize As Size,
	maxSize As Size
) As Rectangle()
Visual C++
array<Rectangle>^ DetectMultiScale(
	Image<Gray, unsigned char>^ image, 
	double scaleFactor, 
	int minNeighbors, 
	Size minSize, 
	Size maxSize
member DetectMultiScale : 
        image : Image<Gray, byte> * 
        scaleFactor : float * 
        minNeighbors : int * 
        minSize : Size * 
        maxSize : Size -> Rectangle[] 


Type: Emgu.CV..::..Image<(Of <(<'Gray, Byte>)>)>
The image where the objects are to be detected from
Type: System..::..Double
The factor by which the search window is scaled between the subsequent scans, for example, 1.1 means increasing window by 10%
Type: System..::..Int32
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. Use 3 for default.
Type: System.Drawing..::..Size
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)
Type: System.Drawing..::..Size
Maxumum window size. Use Size.Empty for default, where the parameter will be ignored.

Return Value

Type: array<Rectangle>[]()[][]
The objects detected, one array per channel

See Also