| ImageEn, unit iexHelperFunctions |
|
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
| Demos\IEVision\Aruco\Aruco.dpr |
Example
// 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