public LinkedList <CvRect> DetectObjects(IntPtr p_sourceImage /*IntelImage sourceImage*/, double scaleFactor = 1.1, int minNeighbours = 3, DetectionFlags flags = DetectionFlags.DoCannyPruning, CvSize minSize = default(CvSize), CvSize maxSize = default(CvSize)) { NativeMethods.cvClearMemStorage(memoryStorage); LinkedList <CvRect> result = new LinkedList <CvRect>(); IntPtr faceSequence = NativeMethods.cvHaarDetectObjects(p_sourceImage, haarCascade, memoryStorage, scaleFactor, minNeighbours, (int)flags, minSize, maxSize); for (;;) { IntPtr faceRectPointer = NativeMethods.cvGetSeqElem(faceSequence, 0); if (faceRectPointer == IntPtr.Zero) { break; } NativeMethods.cvSeqPopFront(faceSequence, IntPtr.Zero); // TODO: merge with cvGetSeqElem result.AddFirst((CvRect)Marshal.PtrToStructure(faceRectPointer, typeof(CvRect))); } return(result); }
internal abstract ExpressionInfo ParseExpression(string expression, ExpressionContext context, DetectionFlags flag, out bool reportParameterReferenced, out string reportParameterName, out bool userCollectionReferenced);