ImageEn, unit iexHelperFunctions

TIEBitmapHelper.DetectAruco

TIEBitmapHelper.DetectAruco

Declaration

function DetectAruco(Dictionary: TIEVisionArucoDictionary; out IDs: TIEArrayOfInteger; out Rects: TIERectArray; out Quality: TIEArrayOfDouble): Integer;

Description

A shortcut method that creates a TIEVisionArucoDetector object and calls detect.
Returns the number of markers found. Parallel arrays IDs, Rects and Quality (0-100) describe each marker.
Use ievDictAuto when the printed dictionary is unknown.


Note:
◼You must add the iexHelperFunctions unit to your uses clause
◼Delphi/C++ 2005 or newer is required to use helper classes
◼You can draw the rects to a canvas using DrawRects
◼Aruco detection requires IEVision. You will need to register it before calling the method

Method Behavior

The following call:
count := ImageEnView1.IEBitmap.DetectAruco( ievDictAuto, ids, rects, quality );
Is the same as calling:
detector := IEVisionLib.createArucoDetector();
detector.setDictionary( ievDictAuto );
markers := detector.detect( ImageEnView1.IEBitmap.GetIEVisionImage(), IEVisionRect( 0,0,0,0 ) );

Demo

Demo  Demos\IEVision\Aruco\Aruco.dpr

Example

Also see: Automated Samples
// Detect Aruco markers
count := ImageEnView1.IEBitmap.DetectAruco( ievDict4x4_50, ids, rects, quality );
for i := 0 to count - 1 do
begin
  ImageEnView1.IEBitmap.IECanvas.Brush.Style := bsClear;
  ImageEnView1.IEBitmap.IECanvas.Pen.Color := clRed;
  ImageEnView1.IEBitmap.IECanvas.Pen.Width := 2;
  ImageEnView1.IEBitmap.IECanvas.Rectangle( rects[i] );
end;
ImageEnView1.Update();

See Also

◼TIEVisionArucoDetector
◼TIEVisionArucoMarker
◼DetectCharuco
◼detect