ImageEn, unit IEVision

TIEVisionCharucoDetector.setBoard

TIEVisionCharucoDetector.setBoard

Declaration

procedure setBoard(squaresX: int32_t; squaresY: int32_t; squareLength: Single; markerLength: Single; dictionary: TIEVisionArucoDictionary); safecall;

Description

Configures the Charuco board geometry and marker dictionary.
Parameter Description
squaresX Number of chessboard squares in X
squaresY Number of chessboard squares in Y
squareLength Square side length (any unit, only the ratio to markerLength matters without camera calibration)
markerLength Marker side length in the same unit. Must be greater than 0 and less than squareLength
dictionary Marker dictionary used on the board (not ievDictAuto). Must contain at least as many markers as white squares (about squaresX * squaresY / 2). A 14x16 board needs 112 ids, so use ievDict4x4_250 or larger, not ievDict4x4_50

Example


var
  detector: TIEVisionCharucoDetector;
  corners: TIEVisionVectorObjRef;
  c: TIEVisionCharucoCorner;
  i: Integer;
begin
  detector := IEVisionLib.createCharucoDetector();
  detector.setBoard(5, 7, 1.0, 0.75, ievDict4x4_50);
  corners := detector.detect(ImageEnView1.IEBitmap.GetIEVisionImage(), IEVisionRect(0, 0, 0, 0));
  for i := 0 to corners.size() - 1 do
  begin
    c := TIEVisionCharucoCorner( corners.getObj(i) );
    Memo1.Lines.Add('Corner ' + IntToStr(c.getId()));
  end;
end;