ImageEn, unit ievision

TIEVisionObjectsFinder

TIEVisionObjectsFinder


Declaration


TIEVisionObjectsFinder = interface(TIEVisionBase)


Description


This interface allows you to find an object or a set of different objects.
It is possible to load more than one classifier (object detector). Each classifier is executed on a different thread.




Demos


  Demos\IEVision\FaceDetection\FaceDetection.dpr
  Demos\IEVision\GetFaces\GetFaces.dpr



Methods and Properties


  addClassifier
  classifierExists
  findIn
  getClassifier
  getFoundRect
  getFoundRectCount
  mergeAllRects
  mergeRects
  removeAllClassifiers
  removeClassifier
  setDivisor
  setEqualizeHistogram
  setHaarFlags
  setHaarMinNeighbors
  setHaarMaxSize
  setHaarMinSize
  setHaarScaleFactor



See Also


  createObjectsFinder
  IEVision Embedded Classifiers



Example


var
  objectsFinder: TIEVisionObjectsFinder;
  rects: TIEVisionVectorRect;
...
// load two face detectors
objectsFinder := IEVisionLib.createObjectsFinder();
objectsFinder.addClassifier('face detector 1', IEVisionLib.createCascadeClassifier(IEVC_FRONTAL_FACE_ALT_TREE));
objectsFinder.addClassifier('face detector 2', IEVisionLib.createCascadeClassifier(IEVC_FRONTAL_FACE_DEFAULT));

// detect objects
objectsFinder.findIn(ImageEnView1.IEBitmap.GetIEVisionImage());

// merge intersecting rectangles of all searched objects
rects := objectsFinder.mergeAllRects();

// loop among rectangles
for i := 0 to rects.size-1 do
begin
  ImageEnView1.ObjPenWidth[-1] := 2;
  with rects.getRect(i) do
  begin
    ... do something with the rectangle coordinates and size
  end;
end;