コード例 #1
0
        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);
        }
コード例 #2
0
 internal abstract ExpressionInfo ParseExpression(string expression, ExpressionContext context, DetectionFlags flag, out bool reportParameterReferenced, out string reportParameterName, out bool userCollectionReferenced);