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;