| ARX 1.0 The next-generation open source augmented reality toolkit.

Loading...
Searching...
No Matches
ar.h
Go to the documentation of this file.
1/*
2 * ar.h
3 * artoolkitX
4 *
5 * This file is part of artoolkitX.
6 *
7 * artoolkitX is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU Lesser General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 *
12 * artoolkitX is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public License
18 * along with artoolkitX. If not, see <http://www.gnu.org/licenses/>.
19 *
20 * As a special exception, the copyright holders of this library give you
21 * permission to link this library with independent modules to produce an
22 * executable, regardless of the license terms of these independent modules, and to
23 * copy and distribute the resulting executable under terms of your choice,
24 * provided that you also meet, for each linked independent module, the terms and
25 * conditions of the license of that module. An independent module is a module
26 * which is neither derived from nor based on this library. If you modify this
27 * library, you may extend this exception to your version of the library, but you
28 * are not obligated to do so. If you do not wish to do so, delete this exception
29 * statement from your version.
30 *
31 * Copyright 2018 Realmax, Inc.
32 * Copyright 2015-2016 Daqri, LLC.
33 * Copyright 2002-2015 ARToolworks, Inc.
34 *
35 * Author(s): Hirokazu Kato, Philip Lamb
36 *
37 */
38/*******************************************************
39 *
40 * Author: Hirokazu Kato
41 *
42 * kato@sys.im.hiroshima-cu.ac.jp
43 *
44 * Revision: 4.01
45 * Date: 2003/11/07
46 *
47 *******************************************************/
48
61#ifndef AR_H
62#define AR_H
63
64#include <stdio.h>
65#include <stdlib.h>
66#include <stdint.h>
67#include <string.h>
68#include <ARX/AR/config.h>
69#include <ARX/AR/arConfig.h>
70#ifdef __ANDROID__
71# include <jni.h>
72# include <android/log.h>
73#endif
74#include <ARX/ARUtil/log.h>
75
76#ifdef __cplusplus
77 extern "C" {
78#endif
79
80
81#define arMalloc(V,T,S) \
82{ if( ((V) = (T *)malloc( sizeof(T) * (S) )) == NULL ) \
83{ARLOGe("Out of memory!!\n"); exit(1);} }
84
85#define arMallocClear(V,T,S) \
86{ if( ((V) = (T *)calloc( (S), sizeof(T) )) == NULL ) \
87{ARLOGe("Out of memory!!\n"); exit(1);} }
88
89 typedef char ARInt8;
90 typedef short ARInt16;
91 typedef int ARInt32;
92 typedef unsigned char ARUint8;
93 typedef unsigned short ARUint16;
94 typedef unsigned int ARUint32;
95 typedef float ARfloat;
96#ifdef ARDOUBLE_IS_FLOAT
97 typedef float ARdouble;
98#else
99 typedef double ARdouble;
100#endif
101
102#ifndef TRUE
103# define TRUE 1
104#endif
105#ifndef FALSE
106# define FALSE 0
107#endif
108
109#ifdef __cplusplus
110}
111#endif
112
113#include <ARX/AR/matrix.h>
114#include <ARX/AR/icp.h>
115
116#ifdef __cplusplus
117 extern "C" {
118#endif
119
120#ifdef _WIN32
121# ifdef AR_STATIC
122# define AR_EXTERN
123# else
124# ifdef ARX_EXPORTS
125# define AR_EXTERN __declspec(dllexport)
126# else
127# define AR_EXTERN __declspec(dllimport)
128# endif
129# endif
130#else
131# define AR_EXTERN
132#endif
133
134/* --------------------------------------------------*/
135
139 typedef struct {
140 uint64_t sec;
141 uint32_t usec;
142} AR2VideoTimestampT;
143
148 typedef struct {
149 ARUint8 *buff;
150 ARUint8 **bufPlanes;
151 unsigned int bufPlaneCount;
152 ARUint8 *buffLuma;
153 int fillFlag;
154 AR2VideoTimestampT time;
155} AR2VideoBufferT;
156
160 typedef enum {
161 AR_LABELING_THRESH_MODE_MANUAL = 0,
162 AR_LABELING_THRESH_MODE_AUTO_MEDIAN,
163 AR_LABELING_THRESH_MODE_AUTO_OTSU,
164 AR_LABELING_THRESH_MODE_AUTO_ADAPTIVE,
165 AR_LABELING_THRESH_MODE_AUTO_BRACKETING
166} AR_LABELING_THRESH_MODE;
167
171 typedef struct {
172 int area;
173 ARdouble pos[2];
174 int coord_num;
175 int x_coord[AR_CHAIN_MAX];
176 int y_coord[AR_CHAIN_MAX];
177 int vertex[5];
178} ARMarkerInfo2;
179
189 typedef enum {
190 AR_MARKER_INFO_CUTOFF_PHASE_NONE,
191 AR_MARKER_INFO_CUTOFF_PHASE_PATTERN_EXTRACTION,
192 AR_MARKER_INFO_CUTOFF_PHASE_MATCH_GENERIC,
193 AR_MARKER_INFO_CUTOFF_PHASE_MATCH_CONTRAST,
194 AR_MARKER_INFO_CUTOFF_PHASE_MATCH_BARCODE_NOT_FOUND,
195 AR_MARKER_INFO_CUTOFF_PHASE_MATCH_BARCODE_EDC_FAIL,
196 AR_MARKER_INFO_CUTOFF_PHASE_MATCH_CONFIDENCE,
197 AR_MARKER_INFO_CUTOFF_PHASE_POSE_ERROR,
198 AR_MARKER_INFO_CUTOFF_PHASE_POSE_ERROR_MULTI,
199 AR_MARKER_INFO_CUTOFF_PHASE_HEURISTIC_TROUBLESOME_MATRIX_CODES
200} AR_MARKER_INFO_CUTOFF_PHASE;
201
202#define AR_MARKER_INFO_CUTOFF_PHASE_DESCRIPTION_COUNT 10
203 AR_EXTERN extern const char *arMarkerInfoCutoffPhaseDescriptions[AR_MARKER_INFO_CUTOFF_PHASE_DESCRIPTION_COUNT];
204
213 typedef struct {
214 int area;
215 int id;
216 int idPatt;
217 int idMatrix;
218 int dir;
219 int dirPatt;
220 int dirMatrix;
221 ARdouble cf;
222 ARdouble cfPatt;
223 ARdouble cfMatrix;
224 ARdouble pos[2];
225 ARdouble line[4][3];
226 ARdouble vertex[4][2];
227 ARMarkerInfo2 *markerInfo2Ptr;
228 AR_MARKER_INFO_CUTOFF_PHASE cutoffPhase;
229 int errorCorrected;
230 uint64_t globalID;
231 int matched;
232} ARMarkerInfo;
233
238 typedef struct {
239 ARMarkerInfo marker;
240 int count;
241} ARTrackingHistory;
242
247 typedef struct {
248 AR_LABELING_LABEL_TYPE *labelImage;
249#if !AR_DISABLE_LABELING_DEBUG_MODE
250 ARUint8 *bwImage;
251#endif
252 int label_num;
253 int area[AR_LABELING_WORK_SIZE];
254 int clip[AR_LABELING_WORK_SIZE][4];
255 ARdouble pos[AR_LABELING_WORK_SIZE][2];
256 int work[AR_LABELING_WORK_SIZE];
257 int work2[AR_LABELING_WORK_SIZE*7];
258} ARLabelInfo;
259
260/* --------------------------------------------------*/
261
268 typedef struct {
269 int patt_num;
270 int patt_num_max;
271 int *pattf;
272 int **patt;
273 ARdouble *pattpow;
274 int **pattBW;
275 ARdouble *pattpowBW;
276 //ARdouble pattRatio; ///<
277 int pattSize;
278} ARPattHandle;
279
286 typedef struct {
287 float topLeftX;
288 float topLeftY;
289 float bottomRightX;
290 float bottomRightY;
291} ARPattRectInfo;
292
293/* --------------------------------------------------*/
294
295#ifdef __cplusplus
296}
297#endif
298
299#include <ARX/AR/param.h>
300#include <ARX/AR/arImageProc.h>
301
302#ifdef __cplusplus
303 extern "C" {
304#endif
305
306#define AR_MATRIX_CODE_TYPE_SIZE_MASK 0x000000ff
307#define AR_MATRIX_CODE_TYPE_ECC_NONE 0x00000000
308#define AR_MATRIX_CODE_TYPE_ECC_PARITY 0x00000100
309#define AR_MATRIX_CODE_TYPE_ECC_HAMMING 0x00000200
310#define AR_MATRIX_CODE_TYPE_ECC_BCH___3 0x00000300
311#define AR_MATRIX_CODE_TYPE_ECC_BCH___5 0x00000400
312#define AR_MATRIX_CODE_TYPE_ECC_BCH___7 0x00000500
313#define AR_MATRIX_CODE_TYPE_ECC_BCH___9 0x00000600
314#define AR_MATRIX_CODE_TYPE_ECC_BCH___11 0x00000700
315#define AR_MATRIX_CODE_TYPE_ECC_BCH___19 0x00000b00
316
320 typedef enum {
321 AR_MATRIX_CODE_3x3 = 0x03,
322 AR_MATRIX_CODE_3x3_PARITY65 = 0x03 | AR_MATRIX_CODE_TYPE_ECC_PARITY,
323 AR_MATRIX_CODE_3x3_HAMMING63 = 0x03 | AR_MATRIX_CODE_TYPE_ECC_HAMMING,
324 AR_MATRIX_CODE_4x4 = 0x04,
325 AR_MATRIX_CODE_4x4_BCH_13_9_3 = 0x04 | AR_MATRIX_CODE_TYPE_ECC_BCH___3,
326 AR_MATRIX_CODE_4x4_BCH_13_5_5 = 0x04 | AR_MATRIX_CODE_TYPE_ECC_BCH___5,
327 AR_MATRIX_CODE_5x5_BCH_22_12_5 = 0x05 | AR_MATRIX_CODE_TYPE_ECC_BCH___5,
328 AR_MATRIX_CODE_5x5_BCH_22_7_7 = 0x05 | AR_MATRIX_CODE_TYPE_ECC_BCH___7,
329 AR_MATRIX_CODE_5x5 = 0x05,
330 AR_MATRIX_CODE_6x6 = 0x06,
331 AR_MATRIX_CODE_GLOBAL_ID = 0x0e | AR_MATRIX_CODE_TYPE_ECC_BCH___19
332} AR_MATRIX_CODE_TYPE;
333
342 typedef struct {
343 int arDebug;
344 AR_PIXEL_FORMAT arPixelFormat;
345 int arPixelSize;
346 int arLabelingMode;
347 int arLabelingThresh;
348 int arImageProcMode;
349 int arPatternDetectionMode;
350 int arMarkerExtractionMode;
351 ARParamLT *arParamLT;
352 int xsize;
353 int ysize;
354 int marker_num;
355 ARMarkerInfo markerInfo[AR_SQUARE_MAX];
356 int marker2_num;
357 ARMarkerInfo2 markerInfo2[AR_SQUARE_MAX];
358 int history_num;
359 ARTrackingHistory history[AR_SQUARE_MAX];
360 ARLabelInfo labelInfo;
361 ARPattHandle *pattHandle;
362 AR_LABELING_THRESH_MODE arLabelingThreshMode;
363 int arLabelingThreshAutoInterval;
364 int arLabelingThreshAutoIntervalTTL;
365 int arLabelingThreshAutoBracketOver;
366 int arLabelingThreshAutoBracketUnder;
367 int arLabelingThreshAutoAdaptiveKernelSize;
368 int arLabelingThreshAutoAdaptiveBias;
369 ARImageProcInfo *arImageProcInfo;
370 ARdouble pattRatio;
371 AR_MATRIX_CODE_TYPE matrixCodeType;
372 int arCornerRefinementMode;
373 ARdouble areaMax;
374 ARdouble areaMin;
375 ARdouble squareFitThresh;
376} ARHandle;
377
378
379/* --------------------------------------------------*/
380
385 typedef struct {
386 ICPHandleT *icpHandle;
387} AR3DHandle;
388
389#define AR_TRANS_MAT_IDENTITY ICP_TRANS_MAT_IDENTITY
390
395 typedef struct {
396 ICPStereoHandleT *icpStereoHandle;
397} AR3DStereoHandle;
398
399
400/***********************************/
401/* */
402/* For square detection */
403/* */
404/***********************************/
405
438 AR_EXTERN ARHandle *arCreateHandle( ARParamLT *paramLT );
439
448 AR_EXTERN int arDeleteHandle( ARHandle *handle );
449
467 AR_EXTERN void arSetDebugMode(ARHandle *handle, int mode);
468
477 AR_EXTERN int arGetDebugMode(ARHandle *handle);
478
497 AR_EXTERN void arSetLabelingMode(ARHandle *handle, int mode);
498
507 AR_EXTERN int arGetLabelingMode(ARHandle *handle);
508
536 AR_EXTERN void arSetLabelingThresh(ARHandle *handle, int thresh);
537
556 AR_EXTERN int arGetLabelingThresh(ARHandle *handle);
557
572 AR_EXTERN void arSetLabelingThreshMode(ARHandle *handle, const AR_LABELING_THRESH_MODE mode);
573
587 AR_EXTERN AR_LABELING_THRESH_MODE arGetLabelingThreshMode(const ARHandle *handle);
588
602 AR_EXTERN void arSetLabelingThreshModeAutoInterval(ARHandle *handle, const int interval);
603
615 AR_EXTERN int arGetLabelingThreshModeAutoInterval(const ARHandle *handle);
616
617 AR_EXTERN void arSetLabelingThreshAutoAdaptiveKernelSize(ARHandle *handle, const int labelingThreshAutoAdaptiveKernelSize);
618
619 AR_EXTERN int arGetLabelingThreshAutoAdaptiveKernelSize(ARHandle *handle);
620
621 AR_EXTERN void arSetLabelingThreshAutoAdaptiveBias(ARHandle *handle, const int labelingThreshAutoAdaptiveBias);
622
623 AR_EXTERN int arGetLabelingThreshAutoAdaptiveBias(ARHandle *handle);
624
648 AR_EXTERN void arSetImageProcMode(ARHandle *handle, int mode);
649
659 AR_EXTERN int arGetImageProcMode(ARHandle *handle);
660
684 AR_EXTERN void arSetPatternDetectionMode(ARHandle *handle, int mode);
685
695 AR_EXTERN int arGetPatternDetectionMode(ARHandle *handle);
696
720 AR_EXTERN void arSetMatrixCodeType(ARHandle *handle, const AR_MATRIX_CODE_TYPE type);
721
730 AR_EXTERN AR_MATRIX_CODE_TYPE arGetMatrixCodeType(ARHandle *handle);
731
744 AR_EXTERN void arSetMarkerExtractionMode(ARHandle *handle, int mode);
745
753 AR_EXTERN int arGetMarkerExtractionMode(ARHandle *handle);
754
766 AR_EXTERN void arSetBorderSize(ARHandle *handle, const ARdouble borderSize);
767
778 AR_EXTERN ARdouble arGetBorderSize(ARHandle *handle);
779
790 AR_EXTERN void arSetPattRatio(ARHandle *handle, const ARdouble pattRatio);
791
800 AR_EXTERN ARdouble arGetPattRatio(ARHandle *handle);
801
816 AR_EXTERN void arSetPixelFormat(ARHandle *handle, AR_PIXEL_FORMAT pixFormat);
817
830 AR_EXTERN AR_PIXEL_FORMAT arGetPixelFormat(ARHandle *handle);
831
832 AR_EXTERN void arSetAreaMax(ARHandle *handle, const ARdouble areaMax);
833
834 AR_EXTERN ARdouble arGetAreaMax(ARHandle *handle);
835
836 AR_EXTERN void arSetAreaMin(ARHandle *handle, const ARdouble areaMin);
837
838 AR_EXTERN ARdouble arGetAreaMin(ARHandle *handle);
839
840 AR_EXTERN void arSetSquareFitThresh(ARHandle *handle, const ARdouble squareFitThresh);
841
842 AR_EXTERN ARdouble arGetSquareFitThresh(ARHandle *handle);
843
856 AR_EXTERN void arSetCornerRefinementMode(ARHandle *handle, int mode);
857
866 AR_EXTERN int arGetCornerRefinementMode(ARHandle *handle);
867
868
895 AR_EXTERN int arDetectMarker(ARHandle *arHandle, AR2VideoBufferT *frame);
896
907 AR_EXTERN int arGetMarkerNum( ARHandle *arHandle );
908
919 AR_EXTERN ARMarkerInfo *arGetMarker( ARHandle *arHandle );
920
921/* ------------------------------ */
922
923 AR_EXTERN int arLabeling( ARUint8 *imageLuma, int xsize, int ysize,
924 int debugMode, int labelingMode, int labelingThresh, int imageProcMode,
925 ARLabelInfo *labelInfo, ARUint8 *image_thresh );
926 AR_EXTERN int arDetectMarker2( int xsize, int ysize, ARLabelInfo *labelInfo, int imageProcMode,
927 int areaMax, int areaMin, ARdouble squareFitThresh,
928 ARMarkerInfo2 *markerInfo2, int *marker2_num );
952 AR_EXTERN int arGetMarkerInfo( ARUint8 *image, int xsize, int ysize, int pixelFormat,
953 ARMarkerInfo2 *markerInfo2, int marker2_num,
954 ARPattHandle *pattHandle, int imageProcMode, int pattDetectMode, ARParamLTf *arParamLTf, ARdouble pattRatio,
955 ARMarkerInfo *markerInfo, int *marker_num,
956 const AR_MATRIX_CODE_TYPE matrixCodeType );
957
958 AR_EXTERN int arGetContour( AR_LABELING_LABEL_TYPE *lImage, int xsize, int ysize, int *label_ref, int label,
959 int clip[4], ARMarkerInfo2 *marker_info2 );
960 AR_EXTERN int arGetLine( int x_coord[], int y_coord[], int coord_num, int vertex[], ARParamLTf *paramLTf,
961 ARdouble line[4][3], ARdouble v[4][2] );
962
963
964/***********************************/
965/* */
966/* For pattern identification */
967/* */
968/***********************************/
969
986 AR_EXTERN ARPattHandle *arPattCreateHandle(void);
987
1010 AR_EXTERN ARPattHandle *arPattCreateHandle2(const int pattSize, const int patternCountMax);
1011
1019 AR_EXTERN int arPattDeleteHandle(ARPattHandle *pattHandle);
1020
1048 AR_EXTERN int arPattLoad( ARPattHandle *pattHandle, const char *filename );
1049
1050 AR_EXTERN int arPattLoadFromBuffer(ARPattHandle *pattHandle, const char *buffer);
1051
1068 AR_EXTERN int arPattSave( ARUint8 *image, int xsize, int ysize, int pixelFormat, ARParamLTf *paramLTf,
1069 int imageProcMode, ARMarkerInfo *marker_info, ARdouble pattRatio, int pattSize, const char *filename );
1070
1082 AR_EXTERN int arPattFree( ARPattHandle *pattHandle, int patno );
1083
1097 AR_EXTERN int arPattActivate( ARPattHandle *pattHandle, int patno );
1098
1114 AR_EXTERN int arPattDeactivate(ARPattHandle *pattHandle, int patno);
1115
1128 AR_EXTERN int arPattAttach(ARHandle *arHandle, ARPattHandle *pattHandle);
1129
1138 AR_EXTERN int arPattDetach(ARHandle *arHandle);
1139
1140//int arPattGetPattRatio( ARPattHandle *pattHandle, float *ratio );
1141//int arPattSetPattRatio( ARPattHandle *pattHandle, float ratio );
1142
1143/* ------------------------------ */
1144
1145#if !AR_DISABLE_NON_CORE_FNS
1146 AR_EXTERN int arPattGetID( ARPattHandle *pattHandle, int imageProcMode, int pattDetectMode,
1147 ARUint8 *image, int xsize, int ysize, AR_PIXEL_FORMAT pixelFormat,
1148 int *x_coord, int *y_coord, int *vertex, ARdouble pattRatio,
1149 int *code, int *dir, ARdouble *cf, const AR_MATRIX_CODE_TYPE matrixCodeType );
1150 AR_EXTERN int arPattGetImage( int imageProcMode, int pattDetectMode, int patt_size, int sample_size,
1151 ARUint8 *image, int xsize, int ysize, AR_PIXEL_FORMAT pixelFormat,
1152 int *x_coord, int *y_coord, int *vertex, ARdouble pattRatio,
1153 ARUint8 *ext_patt );
1154
1177 AR_EXTERN int arPattGetID2( ARPattHandle *pattHandle, int imageProcMode, int pattDetectMode,
1178 ARUint8 *image, int xsize, int ysize, AR_PIXEL_FORMAT pixelFormat, ARParamLTf *arParamLTf, ARdouble vertex[4][2], ARdouble pattRatio,
1179 int *codePatt, int *dirPatt, ARdouble *cfPatt, int *codeMatrix, int *dirMatrix, ARdouble *cfMatrix,
1180 const AR_MATRIX_CODE_TYPE matrixCodeType );
1181#endif // !AR_DISABLE_NON_CORE_FNS
1182
1207 AR_EXTERN int arPattGetIDGlobal( ARPattHandle *pattHandle, int imageProcMode, int pattDetectMode,
1208 ARUint8 *image, int xsize, int ysize, AR_PIXEL_FORMAT pixelFormat, ARParamLTf *arParamLTf, ARdouble vertex[4][2], ARdouble pattRatio,
1209 int *codePatt, int *dirPatt, ARdouble *cfPatt, int *codeMatrix, int *dirMatrix, ARdouble *cfMatrix,
1210 const AR_MATRIX_CODE_TYPE matrixCodeType, int *errorCorrected, uint64_t *codeGlobalID_p );
1211
1229 AR_EXTERN int arPattGetImage2( int imageProcMode, int pattDetectMode, int patt_size, int sample_size,
1230 ARUint8 *image, int xsize, int ysize, AR_PIXEL_FORMAT pixelFormat, ARParamLTf *arParamLTf,
1231 ARdouble vertex[4][2], ARdouble pattRatio, ARUint8 *ext_patt );
1232
1247 AR_EXTERN int arPattGetImage3( ARHandle *arHandle, int markerNo, ARUint8 *image, ARPattRectInfo *rect, int xsize, int ysize,
1248 int overSampleScale, ARUint8 *outImage );
1249
1250
1251/***********************************/
1252/* */
1253/* For 3D calculation */
1254/* */
1255/***********************************/
1256
1272 AR_EXTERN AR3DHandle *ar3DCreateHandle(const ARParam *arParam);
1273
1285 AR_EXTERN AR3DHandle *ar3DCreateHandle2(const ARdouble cpara[3][4]);
1286
1295 AR_EXTERN int ar3DDeleteHandle( AR3DHandle **handle );
1296
1304 AR_EXTERN int ar3DChangeCpara( AR3DHandle *handle, const ARdouble cpara[3][4] );
1305
1313 AR_EXTERN int ar3DChangeMaxLoopCount( AR3DHandle *handle, int maxLoopCount );
1314
1322 AR_EXTERN int ar3DChangeLoopBreakThresh( AR3DHandle *handle, ARdouble loopBreakThresh );
1323
1331 AR_EXTERN int ar3DChangeLoopBreakThreshRatio( AR3DHandle *handle, ARdouble loopBreakThreshRatio );
1332
1342 AR_EXTERN ARdouble arGetTransMatSquare( AR3DHandle *handle, ARMarkerInfo *marker_info,
1343 ARdouble width, ARdouble conv[3][4] );
1344
1355 AR_EXTERN ARdouble arGetTransMatSquareCont( AR3DHandle *handle, ARMarkerInfo *marker_info,
1356 ARdouble initConv[3][4],
1357 ARdouble width, ARdouble conv[3][4] );
1358
1370 AR_EXTERN ARdouble arGetTransMat( AR3DHandle *handle, ARdouble initConv[3][4],
1371 ARdouble pos2d[][2], ARdouble pos3d[][3], int num,
1372 ARdouble conv[3][4] );
1373
1385 AR_EXTERN ARdouble arGetTransMatRobust( AR3DHandle *handle, ARdouble initConv[3][4],
1386 ARdouble pos2d[][2], ARdouble pos3d[][3], int num,
1387 ARdouble conv[3][4] );
1388
1389
1390/***********************************/
1391/* */
1392/* For 3D calculation by Stereo */
1393/* */
1394/***********************************/
1395
1400 AR_EXTERN AR3DStereoHandle *ar3DStereoCreateHandle(const ARParam *arParamL, const ARParam *arParamR, const ARdouble transL[3][4], const ARdouble transR[3][4]);
1401 AR_EXTERN AR3DStereoHandle *ar3DStereoCreateHandle2(const ARdouble cparaL[3][4], const ARdouble cparaR[3][4], const ARdouble transL[3][4], const ARdouble transR[3][4]);
1402 AR_EXTERN int ar3DStereoDeleteHandle( AR3DStereoHandle **handle );
1403 AR_EXTERN int ar3DStereoChangeMaxLoopCount( AR3DStereoHandle *handle, int maxLoopCount );
1404 AR_EXTERN int ar3DStereoChangeLoopBreakThresh( AR3DStereoHandle *handle, ARdouble loopBreakThresh );
1405 AR_EXTERN int ar3DStereoChangeLoopBreakThreshRatio( AR3DStereoHandle *handle, ARdouble loopBreakThreshRatio );
1406 AR_EXTERN int ar3DStereoChangeCpara( AR3DStereoHandle *handle, ARdouble cparaL[3][4], ARdouble cparaR[3][4] );
1407 AR_EXTERN int ar3DStereoChangeTransMat( AR3DStereoHandle *handle, ARdouble transL[3][4], ARdouble transR[3][4] );
1408
1409 AR_EXTERN ARdouble arGetTransMatSquareStereo( AR3DStereoHandle *handle,
1410 ARMarkerInfo *marker_infoL, ARMarkerInfo *marker_infoR,
1411 ARdouble width, ARdouble conv[3][4] );
1412 AR_EXTERN ARdouble arGetTransMatSquareContStereo( AR3DStereoHandle *handle,
1413 ARMarkerInfo *marker_infoL, ARMarkerInfo *marker_infoR,
1414 ARdouble prev_conv[3][4],
1415 ARdouble width, ARdouble conv[3][4] );
1416 AR_EXTERN ARdouble arGetTransMatStereo( AR3DStereoHandle *handle, ARdouble initConv[3][4],
1417 ARdouble pos2dL[][2], ARdouble pos3dL[][3], int numL,
1418 ARdouble pos2dR[][2], ARdouble pos3dR[][3], int numR,
1419 ARdouble conv[3][4] );
1420 AR_EXTERN ARdouble arGetTransMatStereoRobust( AR3DStereoHandle *handle, ARdouble initConv[3][4],
1421 ARdouble pos2dL[][2], ARdouble pos3dL[][3], int numL,
1422 ARdouble pos2dR[][2], ARdouble pos3dR[][3], int numR,
1423 ARdouble conv[3][4] );
1424
1425 AR_EXTERN ARdouble arGetStereoMatchingErrorSquare( AR3DStereoHandle *handle,
1426 ARMarkerInfo *marker_infoL,
1427 ARMarkerInfo *marker_infoR );
1428 AR_EXTERN ARdouble arGetStereoMatchingError( AR3DStereoHandle *handle,
1429 ARdouble pos2dL[2], ARdouble pos2dR[2] );
1430 AR_EXTERN int arGetStereoMatching( AR3DStereoHandle *handle,
1431 ARdouble pos2dL[2], ARdouble pos2dR[2], ARdouble pos3d[3] );
1432
1433
1434
1435/***********************************/
1436/* */
1437/* Utility */
1438/* */
1439/***********************************/
1440
1492 AR_EXTERN ARUint32 arGetVersion(char **versionStringRef);
1493
1494 AR_EXTERN int arUtilMatInv( const ARdouble s[3][4], ARdouble d[3][4] );
1495 AR_EXTERN int arUtilMatMul( const ARdouble s1[3][4], const ARdouble s2[3][4], ARdouble d[3][4] );
1496
1497#ifdef ARDOUBLE_IS_FLOAT
1498#define arUtilMatInvf arUtilMatInv
1499#define arUtilMatMulf arUtilMatMul
1500#define arUtilMatMuldff arUtilMatMul
1501#else
1502 AR_EXTERN int arUtilMatInvf( const float s[3][4], float d[3][4] );
1503 AR_EXTERN int arUtilMatMulf( const float s1[3][4], const float s2[3][4], float d[3][4] );
1504 AR_EXTERN int arUtilMatMuldff( const ARdouble s1[3][4], const float s2[3][4], float d[3][4] );
1505#endif
1506 AR_EXTERN int arUtilMat2QuatPos( const ARdouble m[3][4], ARdouble q[4], ARdouble p[3] );
1507 AR_EXTERN int arUtilQuatPos2Mat( const ARdouble q[4], const ARdouble p[3], ARdouble m[3][4] );
1508 AR_EXTERN int arUtilQuatNorm(ARdouble q[4]);
1509
1510 AR_EXTERN int arUtilReplaceExt( char *filename, int n, char *ext );
1511 AR_EXTERN int arUtilRemoveExt ( char *filename );
1512 AR_EXTERN int arUtilDivideExt ( const char *filename, char *s1, char *s2 );
1513
1514 AR_EXTERN int arUtilGetSquareCenter( ARdouble vertex[4][2], ARdouble *x, ARdouble *y );
1515
1516 AR_EXTERN int arUtilSortLabel( int mask[], int m, int n,
1517 ARdouble pos[][2], int area[], int label_num,
1518 int l1, int x1, int y1,
1519 int l2, int x2, int y2,
1520 int label[] );
1521
1532 AR_EXTERN int arUtilGetPixelSize( const AR_PIXEL_FORMAT arPixelFormat );
1533
1545 AR_EXTERN const char *arUtilGetPixelFormatName(const AR_PIXEL_FORMAT arPixelFormat);
1546
1547/*
1548 @brief Get the filename portion of a full pathname.
1549 @details
1550 Given a full or partial pathname passed in string path,
1551 returns a pointer to the first char of the filename
1552 portion of path.
1553 */
1554 AR_EXTERN const char *arUtilGetFileNameFromPath(const char *path);
1555
1556
1571 AR_EXTERN char *arUtilGetFileBasenameFromPath(const char *path, const int convertToLowercase);
1572
1586 AR_EXTERN char *arUtilGetFileExtensionFromPath(const char *path, const int convertToLowercase);
1587
1588 /*
1589 @brief Get the directory portion of a full pathname.
1590 @details
1591 Given a full or partial pathname passed in string path,
1592 returns a string with the directory name portion of path.
1593 The string is placed into the buffer of size n pointed to by dir.
1594 If the string and its terminating null byte cannot be accomodated by the
1595 buffer, NULL is returned, otherwise dir is returned.
1596 The string is terminated by the directory separator if addSeparator != 0.
1597 */
1598 AR_EXTERN char *arUtilGetDirectoryNameFromPath(char *dir, const char *path, const size_t n, const int addSeparator);
1599
1618 AR_EXTERN char *arUtilGetFileURI(const char *path);
1619
1625 typedef enum {
1632 AR_UTIL_RESOURCES_DIRECTORY_BEHAVIOR_BEST = 0,
1636 AR_UTIL_RESOURCES_DIRECTORY_BEHAVIOR_USE_CWD,
1640 AR_UTIL_RESOURCES_DIRECTORY_BEHAVIOR_USE_SUPPLIED_PATH,
1645 AR_UTIL_RESOURCES_DIRECTORY_BEHAVIOR_USE_EXECUTABLE_DIR,
1655 AR_UTIL_RESOURCES_DIRECTORY_BEHAVIOR_USE_BUNDLE_RESOURCES_DIR,
1664 AR_UTIL_RESOURCES_DIRECTORY_BEHAVIOR_USE_USER_ROOT,
1669 AR_UTIL_RESOURCES_DIRECTORY_BEHAVIOR_USE_APP_CACHE_DIR,
1674 AR_UTIL_RESOURCES_DIRECTORY_BEHAVIOR_USE_APP_DATA_DIR,
1679 AR_UTIL_RESOURCES_DIRECTORY_BEHAVIOR_USE_TMP_DIR
1680} AR_UTIL_RESOURCES_DIRECTORY_BEHAVIOR;
1681
1697#ifdef ANDROID
1698 char *arUtilGetResourcesDirectoryPath(AR_UTIL_RESOURCES_DIRECTORY_BEHAVIOR behavior, jobject instanceOfAndroidContext);
1699#else
1700 AR_EXTERN char *arUtilGetResourcesDirectoryPath(AR_UTIL_RESOURCES_DIRECTORY_BEHAVIOR behavior);
1701#endif
1702
1718#ifdef ANDROID
1719 char *arUtilGetAndCreateResourcesDirectoryPath(AR_UTIL_RESOURCES_DIRECTORY_BEHAVIOR behavior, jobject instanceOfAndroidContext);
1720#else
1721 AR_EXTERN char *arUtilGetAndCreateResourcesDirectoryPath(AR_UTIL_RESOURCES_DIRECTORY_BEHAVIOR behavior);
1722#endif
1723
1724#ifndef _WINRT
1745#ifdef ANDROID
1746 int arUtilChangeToResourcesDirectory(AR_UTIL_RESOURCES_DIRECTORY_BEHAVIOR behavior, const char *path, jobject instanceOfAndroidContext);
1747#else
1748 AR_EXTERN int arUtilChangeToResourcesDirectory(AR_UTIL_RESOURCES_DIRECTORY_BEHAVIOR behavior, const char *path);
1749#endif
1750#endif // !_WINRT
1751
1752#ifdef __ANDROID__
1753# define ARPRINT(...) __android_log_print(ANDROID_LOG_INFO, "artoolkitx", __VA_ARGS__)
1754# define ARPRINTE(...) __android_log_print(ANDROID_LOG_ERROR, "artoolkitx", __VA_ARGS__)
1755#else
1756# define ARPRINT(...) printf(__VA_ARGS__)
1757# define ARPRINTE(...) fprintf(stderr, __VA_ARGS__)
1758#endif
1759
1764 AR_EXTERN void arUtilPrintTransMat(const ARdouble trans[3][4]);
1765
1770 AR_EXTERN void arUtilPrintMtx16(const ARdouble mtx16[16]);
1771
1772#ifdef __cplusplus
1773}
1774#endif //#ifdef __cplusplus
1775
1776#endif //#ifndef AR_H
arGetMatrixCodeType
AR_EXTERN AR_MATRIX_CODE_TYPE arGetMatrixCodeType(ARHandle *handle)
Get the size and ECC algorithm being used for matrix code (2D barcode) marker detection.
Definition: arCreateHandle.c:323
arGetMarkerInfo
AR_EXTERN int arGetMarkerInfo(ARUint8 *image, int xsize, int ysize, int pixelFormat, ARMarkerInfo2 *markerInfo2, int marker2_num, ARPattHandle *pattHandle, int imageProcMode, int pattDetectMode, ARParamLTf *arParamLTf, ARdouble pattRatio, ARMarkerInfo *markerInfo, int *marker_num, const AR_MATRIX_CODE_TYPE matrixCodeType)
Examine a set of detected squares for match with known markers.
Definition: arGetMarkerInfo.c:51
ARUint8
unsigned char ARUint8
Definition: ar.h:92
arUtilGetSquareCenter
AR_EXTERN int arUtilGetSquareCenter(ARdouble vertex[4][2], ARdouble *x, ARdouble *y)
Definition: arUtil.c:125
arGetTransMatStereo
AR_EXTERN ARdouble arGetTransMatStereo(AR3DStereoHandle *handle, ARdouble initConv[3][4], ARdouble pos2dL[][2], ARdouble pos3dL[][3], int numL, ARdouble pos2dR[][2], ARdouble pos3dR[][3], int numR, ARdouble conv[3][4])
Definition: arGetTransMatStereo.c:222
arGetVersion
AR_EXTERN ARUint32 arGetVersion(char **versionStringRef)
Get the artoolkitX version information in numberic and string format.
Definition: arUtil.c:102
arUtilGetDirectoryNameFromPath
AR_EXTERN char * arUtilGetDirectoryNameFromPath(char *dir, const char *path, const size_t n, const int addSeparator)
Definition: arUtil.c:532
arGetLabelingMode
AR_EXTERN int arGetLabelingMode(ARHandle *handle)
Enquire whether detection is looking for black markers or white markers.
Definition: arCreateHandle.c:160
AR_MATRIX_CODE_TYPE
AR_MATRIX_CODE_TYPE
Values specifying the type of matrix code in use.
Definition: ar.h:320
AR_MATRIX_CODE_5x5_BCH_22_12_5
@ AR_MATRIX_CODE_5x5_BCH_22_12_5
Matrix code in range 0-4095.
Definition: ar.h:327
AR_MATRIX_CODE_5x5_BCH_22_7_7
@ AR_MATRIX_CODE_5x5_BCH_22_7_7
Matrix code in range 0-127.
Definition: ar.h:328
AR_MATRIX_CODE_3x3_HAMMING63
@ AR_MATRIX_CODE_3x3_HAMMING63
Matrix code in range 0-7.
Definition: ar.h:323
AR_MATRIX_CODE_4x4_BCH_13_9_3
@ AR_MATRIX_CODE_4x4_BCH_13_9_3
Matrix code in range 0-511.
Definition: ar.h:325
AR_MATRIX_CODE_5x5
@ AR_MATRIX_CODE_5x5
Matrix code in range 0-4194303.
Definition: ar.h:329
AR_MATRIX_CODE_3x3_PARITY65
@ AR_MATRIX_CODE_3x3_PARITY65
Matrix code in range 0-31.
Definition: ar.h:322
AR_MATRIX_CODE_6x6
@ AR_MATRIX_CODE_6x6
Matrix code in range 0-8589934591.
Definition: ar.h:330
AR_MATRIX_CODE_4x4_BCH_13_5_5
@ AR_MATRIX_CODE_4x4_BCH_13_5_5
Matrix code in range 0-31.
Definition: ar.h:326
AR_MATRIX_CODE_3x3
@ AR_MATRIX_CODE_3x3
Matrix code in range 0-63.
Definition: ar.h:321
AR_MATRIX_CODE_GLOBAL_ID
@ AR_MATRIX_CODE_GLOBAL_ID
Definition: ar.h:331
AR_MATRIX_CODE_4x4
@ AR_MATRIX_CODE_4x4
Matrix code in range 0-8191.
Definition: ar.h:324
arGetLine
AR_EXTERN int arGetLine(int x_coord[], int y_coord[], int coord_num, int vertex[], ARParamLTf *paramLTf, ARdouble line[4][3], ARdouble v[4][2])
Definition: arGetLine.c:66
arPattGetIDGlobal
AR_EXTERN int arPattGetIDGlobal(ARPattHandle *pattHandle, int imageProcMode, int pattDetectMode, ARUint8 *image, int xsize, int ysize, AR_PIXEL_FORMAT pixelFormat, ARParamLTf *arParamLTf, ARdouble vertex[4][2], ARdouble pattRatio, int *codePatt, int *dirPatt, ARdouble *cfPatt, int *codeMatrix, int *dirMatrix, ARdouble *cfMatrix, const AR_MATRIX_CODE_TYPE matrixCodeType, int *errorCorrected, uint64_t *codeGlobalID_p)
Match the interior of a detected square against known patterns with variable border width.
Definition: arPattGetID.c:184
ar3DCreateHandle2
AR_EXTERN AR3DHandle * ar3DCreateHandle2(const ARdouble cpara[3][4])
Create handle used for 3D calculation from an intrinsic parameters matrix.
Definition: ar3DCreateHandle.c:57
ar3DStereoChangeTransMat
AR_EXTERN int ar3DStereoChangeTransMat(AR3DStereoHandle *handle, ARdouble transL[3][4], ARdouble transR[3][4])
Definition: ar3DCreateHandle.c:162
arSetMarkerExtractionMode
AR_EXTERN void arSetMarkerExtractionMode(ARHandle *handle, int mode)
Set the marker extraction mode.
Definition: arCreateHandle.c:337
arPattLoadFromBuffer
AR_EXTERN int arPattLoadFromBuffer(ARPattHandle *pattHandle, const char *buffer)
Definition: arPattLoad.c:55
arUtilDivideExt
AR_EXTERN int arUtilDivideExt(const char *filename, char *s1, char *s2)
Definition: arUtil.c:1341
arUtilQuatPos2Mat
AR_EXTERN int arUtilQuatPos2Mat(const ARdouble q[4], const ARdouble p[3], ARdouble m[3][4])
Definition: arUtil.c:323
arGetTransMatRobust
AR_EXTERN ARdouble arGetTransMatRobust(AR3DHandle *handle, ARdouble initConv[3][4], ARdouble pos2d[][2], ARdouble pos3d[][3], int num, ARdouble conv[3][4])
(description)
Definition: arGetTransMat.c:175
arUtilReplaceExt
AR_EXTERN int arUtilReplaceExt(char *filename, int n, char *ext)
Definition: arUtil.c:1306
arGetTransMatSquareStereo
AR_EXTERN ARdouble arGetTransMatSquareStereo(AR3DStereoHandle *handle, ARMarkerInfo *marker_infoL, ARMarkerInfo *marker_infoR, ARdouble width, ARdouble conv[3][4])
Definition: arGetTransMatStereo.c:55
arSetBorderSize
AR_EXTERN void arSetBorderSize(ARHandle *handle, const ARdouble borderSize)
Set the border size.
Definition: arCreateHandle.c:360
arPattGetImage2
AR_EXTERN int arPattGetImage2(int imageProcMode, int pattDetectMode, int patt_size, int sample_size, ARUint8 *image, int xsize, int ysize, AR_PIXEL_FORMAT pixelFormat, ARParamLTf *arParamLTf, ARdouble vertex[4][2], ARdouble pattRatio, ARUint8 *ext_patt)
Extract the image (i.e. locate and unwarp) of the pattern-space portion of a detected square.
Definition: arPattGetID.c:841
arSetMatrixCodeType
AR_EXTERN void arSetMatrixCodeType(ARHandle *handle, const AR_MATRIX_CODE_TYPE type)
Set the size and ECC algorithm to be used for matrix code (2D barcode) marker detection.
Definition: arCreateHandle.c:316
arGetPattRatio
AR_EXTERN ARdouble arGetPattRatio(ARHandle *handle)
Get the width/height of the marker pattern space, as a proportion of marker width/height.
Definition: arCreateHandle.c:383
arGetPixelFormat
AR_EXTERN AR_PIXEL_FORMAT arGetPixelFormat(ARHandle *handle)
Get the expected pixel format for video frames being passed to arDetectMarker.
Definition: arCreateHandle.c:438
ar3DStereoDeleteHandle
AR_EXTERN int ar3DStereoDeleteHandle(AR3DStereoHandle **handle)
Definition: ar3DCreateHandle.c:129
arUtilMatInv
AR_EXTERN int arUtilMatInv(const ARdouble s[3][4], ARdouble d[3][4])
Definition: arUtil.c:202
arPattGetID2
AR_EXTERN int arPattGetID2(ARPattHandle *pattHandle, int imageProcMode, int pattDetectMode, ARUint8 *image, int xsize, int ysize, AR_PIXEL_FORMAT pixelFormat, ARParamLTf *arParamLTf, ARdouble vertex[4][2], ARdouble pattRatio, int *codePatt, int *dirPatt, ARdouble *cfPatt, int *codeMatrix, int *dirMatrix, ARdouble *cfMatrix, const AR_MATRIX_CODE_TYPE matrixCodeType)
Match the interior of a detected square against known patterns.
Definition: arPattGetID.c:173
arSetPatternDetectionMode
AR_EXTERN void arSetPatternDetectionMode(ARHandle *handle, int mode)
Set the pattern detection mode.
Definition: arCreateHandle.c:298
arPattGetID
AR_EXTERN int arPattGetID(ARPattHandle *pattHandle, int imageProcMode, int pattDetectMode, ARUint8 *image, int xsize, int ysize, AR_PIXEL_FORMAT pixelFormat, int *x_coord, int *y_coord, int *vertex, ARdouble pattRatio, int *code, int *dir, ARdouble *cf, const AR_MATRIX_CODE_TYPE matrixCodeType)
Definition: arPattGetID.c:109
arPattAttach
AR_EXTERN int arPattAttach(ARHandle *arHandle, ARPattHandle *pattHandle)
Associate a set of patterns with an ARHandle.
Definition: arPattAttach.c:51
ARfloat
float ARfloat
Definition: ar.h:95
ar3DStereoChangeLoopBreakThreshRatio
AR_EXTERN int ar3DStereoChangeLoopBreakThreshRatio(AR3DStereoHandle *handle, ARdouble loopBreakThreshRatio)
Definition: ar3DCreateHandle.c:150
arPattCreateHandle2
AR_EXTERN ARPattHandle * arPattCreateHandle2(const int pattSize, const int patternCountMax)
Allocate a pattern handle and set pattern template size and maximum number of patterns loadable.
Definition: arPattCreateHandle.c:58
arPattDeactivate
AR_EXTERN int arPattDeactivate(ARPattHandle *pattHandle, int patno)
Deactivate a previously activated pattern.
Definition: arPattLoad.c:179
arGetAreaMax
AR_EXTERN ARdouble arGetAreaMax(ARHandle *handle)
Definition: arCreateHandle.c:468
arUtilSortLabel
AR_EXTERN int arUtilSortLabel(int mask[], int m, int n, ARdouble pos[][2], int area[], int label_num, int l1, int x1, int y1, int l2, int x2, int y2, int label[])
arGetLabelingThresh
AR_EXTERN int arGetLabelingThresh(ARHandle *handle)
Get the current labeling threshold.
Definition: arCreateHandle.c:176
AR_MATRIX_CODE_TYPE_ECC_BCH___5
#define AR_MATRIX_CODE_TYPE_ECC_BCH___5
BCH code with Hamming distance of 5.
Definition: ar.h:311
arSetImageProcMode
AR_EXTERN void arSetImageProcMode(ARHandle *handle, int mode)
Set the image processing mode.
Definition: arCreateHandle.c:276
ar3DDeleteHandle
AR_EXTERN int ar3DDeleteHandle(AR3DHandle **handle)
Delete handle used for 3D calculation.
Definition: ar3DCreateHandle.c:72
arGetMarker
AR_EXTERN ARMarkerInfo * arGetMarker(ARHandle *arHandle)
Get information on the markers detected in a video frame.
Definition: arCreateHandle.c:519
AR_MATRIX_CODE_TYPE_ECC_PARITY
#define AR_MATRIX_CODE_TYPE_ECC_PARITY
Single-bit parity.
Definition: ar.h:308
arLabeling
AR_EXTERN int arLabeling(ARUint8 *imageLuma, int xsize, int ysize, int debugMode, int labelingMode, int labelingThresh, int imageProcMode, ARLabelInfo *labelInfo, ARUint8 *image_thresh)
Definition: arLabeling.c:55
arSetAreaMin
AR_EXTERN void arSetAreaMin(ARHandle *handle, const ARdouble areaMin)
Definition: arCreateHandle.c:475
arPattFree
AR_EXTERN int arPattFree(ARPattHandle *pattHandle, int patno)
Frees (unloads) a pattern file from memory.
Definition: arPattLoad.c:160
arGetBorderSize
AR_EXTERN ARdouble arGetBorderSize(ARHandle *handle)
Get the border size.
Definition: arCreateHandle.c:368
ARdouble
double ARdouble
Definition: ar.h:99
arGetTransMat
AR_EXTERN ARdouble arGetTransMat(AR3DHandle *handle, ARdouble initConv[3][4], ARdouble pos2d[][2], ARdouble pos3d[][3], int num, ARdouble conv[3][4])
(description)
Definition: arGetTransMat.c:146
arGetCornerRefinementMode
AR_EXTERN int arGetCornerRefinementMode(ARHandle *handle)
Find out whether square tracking subpixel corner refinement is enabled.
Definition: arCreateHandle.c:505
ARInt16
short ARInt16
Definition: ar.h:90
arUtilGetFileNameFromPath
AR_EXTERN const char * arUtilGetFileNameFromPath(const char *path)
Definition: arUtil.c:449
AR_MATRIX_CODE_TYPE_ECC_HAMMING
#define AR_MATRIX_CODE_TYPE_ECC_HAMMING
Hamming code with Hamming distance of 3.
Definition: ar.h:309
arUtilQuatNorm
AR_EXTERN int arUtilQuatNorm(ARdouble q[4])
Definition: arUtil.c:372
ar3DChangeLoopBreakThresh
AR_EXTERN int ar3DChangeLoopBreakThresh(AR3DHandle *handle, ARdouble loopBreakThresh)
(description)
Definition: ar3DCreateHandle.c:94
arUtilGetPixelSize
AR_EXTERN int arUtilGetPixelSize(const AR_PIXEL_FORMAT arPixelFormat)
Get the size in bytes of a single pixel for a given pixel format.
Definition: arUtil.c:394
arPattCreateHandle
AR_EXTERN ARPattHandle * arPattCreateHandle(void)
Allocate a pattern handle.
Definition: arPattCreateHandle.c:53
arGetPatternDetectionMode
AR_EXTERN int arGetPatternDetectionMode(ARHandle *handle)
Get the pattern detection mode.
Definition: arCreateHandle.c:330
arGetTransMatStereoRobust
AR_EXTERN ARdouble arGetTransMatStereoRobust(AR3DStereoHandle *handle, ARdouble initConv[3][4], ARdouble pos2dL[][2], ARdouble pos3dL[][3], int numL, ARdouble pos2dR[][2], ARdouble pos3dR[][3], int numR, ARdouble conv[3][4])
Definition: arGetTransMatStereo.c:281
arGetMarkerNum
AR_EXTERN int arGetMarkerNum(ARHandle *arHandle)
Get the number of markers detected in a video frame.
Definition: arCreateHandle.c:512
arSetAreaMax
AR_EXTERN void arSetAreaMax(ARHandle *handle, const ARdouble areaMax)
Definition: arCreateHandle.c:460
arPattDeleteHandle
AR_EXTERN int arPattDeleteHandle(ARPattHandle *pattHandle)
Free all loaded patterns and pattern handle.
Definition: arPattCreateHandle.c:88
arGetStereoMatchingError
AR_EXTERN ARdouble arGetStereoMatchingError(AR3DStereoHandle *handle, ARdouble pos2dL[2], ARdouble pos2dR[2])
Definition: ar3DUtil.c:90
ar3DStereoChangeMaxLoopCount
AR_EXTERN int ar3DStereoChangeMaxLoopCount(AR3DStereoHandle *handle, int maxLoopCount)
Definition: ar3DCreateHandle.c:140
arUtilGetAndCreateResourcesDirectoryPath
AR_EXTERN char * arUtilGetAndCreateResourcesDirectoryPath(AR_UTIL_RESOURCES_DIRECTORY_BEHAVIOR behavior)
Get the path to the resources directory using the specified behavior, creating the path if it doesn't...
Definition: arUtil.c:1225
arUtilGetFileURI
AR_EXTERN char * arUtilGetFileURI(const char *path)
Get a path as a file URI.
Definition: arUtil.c:558
arGetLabelingThreshMode
AR_EXTERN AR_LABELING_THRESH_MODE arGetLabelingThreshMode(const ARHandle *handle)
Get the labeling threshold mode (auto/manual).
Definition: arCreateHandle.c:224
arUtilGetFileExtensionFromPath
AR_EXTERN char * arUtilGetFileExtensionFromPath(const char *path, const int convertToLowercase)
Get file extension from a path.
Definition: arUtil.c:500
arGetDebugMode
AR_EXTERN int arGetDebugMode(ARHandle *handle)
Find out whether artoolkitX's debug mode is enabled.
Definition: arCreateHandle.c:138
AR_UTIL_RESOURCES_DIRECTORY_BEHAVIOR
AR_UTIL_RESOURCES_DIRECTORY_BEHAVIOR
Options for controlling the behavior of arUtilGetResourcesDirectoryPath and arUtilChangeToResourcesDi...
Definition: ar.h:1625
AR_UTIL_RESOURCES_DIRECTORY_BEHAVIOR_USE_BUNDLE_RESOURCES_DIR
@ AR_UTIL_RESOURCES_DIRECTORY_BEHAVIOR_USE_BUNDLE_RESOURCES_DIR
Definition: ar.h:1655
AR_UTIL_RESOURCES_DIRECTORY_BEHAVIOR_USE_USER_ROOT
@ AR_UTIL_RESOURCES_DIRECTORY_BEHAVIOR_USE_USER_ROOT
Definition: ar.h:1664
AR_UTIL_RESOURCES_DIRECTORY_BEHAVIOR_BEST
@ AR_UTIL_RESOURCES_DIRECTORY_BEHAVIOR_BEST
Definition: ar.h:1632
AR_UTIL_RESOURCES_DIRECTORY_BEHAVIOR_USE_APP_CACHE_DIR
@ AR_UTIL_RESOURCES_DIRECTORY_BEHAVIOR_USE_APP_CACHE_DIR
Definition: ar.h:1669
AR_UTIL_RESOURCES_DIRECTORY_BEHAVIOR_USE_APP_DATA_DIR
@ AR_UTIL_RESOURCES_DIRECTORY_BEHAVIOR_USE_APP_DATA_DIR
Definition: ar.h:1674
AR_UTIL_RESOURCES_DIRECTORY_BEHAVIOR_USE_CWD
@ AR_UTIL_RESOURCES_DIRECTORY_BEHAVIOR_USE_CWD
Definition: ar.h:1636
AR_UTIL_RESOURCES_DIRECTORY_BEHAVIOR_USE_EXECUTABLE_DIR
@ AR_UTIL_RESOURCES_DIRECTORY_BEHAVIOR_USE_EXECUTABLE_DIR
Definition: ar.h:1645
AR_UTIL_RESOURCES_DIRECTORY_BEHAVIOR_USE_SUPPLIED_PATH
@ AR_UTIL_RESOURCES_DIRECTORY_BEHAVIOR_USE_SUPPLIED_PATH
Definition: ar.h:1640
AR_UTIL_RESOURCES_DIRECTORY_BEHAVIOR_USE_TMP_DIR
@ AR_UTIL_RESOURCES_DIRECTORY_BEHAVIOR_USE_TMP_DIR
Definition: ar.h:1679
arGetLabelingThreshAutoAdaptiveKernelSize
AR_EXTERN int arGetLabelingThreshAutoAdaptiveKernelSize(ARHandle *handle)
Definition: arCreateHandle.c:248
arSetLabelingThresh
AR_EXTERN void arSetLabelingThresh(ARHandle *handle, int thresh)
Set the labeling threshhold.
Definition: arCreateHandle.c:167
arGetImageProcMode
AR_EXTERN int arGetImageProcMode(ARHandle *handle)
Get the image processing mode.
Definition: arCreateHandle.c:291
arGetAreaMin
AR_EXTERN ARdouble arGetAreaMin(ARHandle *handle)
Definition: arCreateHandle.c:483
arSetDebugMode
AR_EXTERN void arSetDebugMode(ARHandle *handle, int mode)
Enable or disable artoolkitX's debug mode.
Definition: arCreateHandle.c:121
arSetCornerRefinementMode
AR_EXTERN void arSetCornerRefinementMode(ARHandle *handle, int mode)
Enable or disable square tracking subpixel corner refinement.
Definition: arCreateHandle.c:445
arGetContour
AR_EXTERN int arGetContour(AR_LABELING_LABEL_TYPE *lImage, int xsize, int ysize, int *label_ref, int label, int clip[4], ARMarkerInfo2 *marker_info2)
Definition: arDetectMarker2.c:138
arSetLabelingThreshAutoAdaptiveBias
AR_EXTERN void arSetLabelingThreshAutoAdaptiveBias(ARHandle *handle, const int labelingThreshAutoAdaptiveBias)
Definition: arCreateHandle.c:255
arSetLabelingThreshMode
AR_EXTERN void arSetLabelingThreshMode(ARHandle *handle, const AR_LABELING_THRESH_MODE mode)
Set the labeling threshold mode (auto/manual).
Definition: arCreateHandle.c:183
arDetectMarker2
AR_EXTERN int arDetectMarker2(int xsize, int ysize, ARLabelInfo *labelInfo, int imageProcMode, int areaMax, int areaMin, ARdouble squareFitThresh, ARMarkerInfo2 *markerInfo2, int *marker2_num)
Definition: arDetectMarker2.c:56
arGetStereoMatching
AR_EXTERN int arGetStereoMatching(AR3DStereoHandle *handle, ARdouble pos2dL[2], ARdouble pos2dR[2], ARdouble pos3d[3])
Definition: ar3DUtil.c:178
ARInt8
char ARInt8
Definition: ar.h:89
arSetSquareFitThresh
AR_EXTERN void arSetSquareFitThresh(ARHandle *handle, const ARdouble squareFitThresh)
Definition: arCreateHandle.c:490
AR_MATRIX_CODE_TYPE_ECC_BCH___3
#define AR_MATRIX_CODE_TYPE_ECC_BCH___3
BCH code with Hamming distance of 3.
Definition: ar.h:310
arUtilChangeToResourcesDirectory
AR_EXTERN int arUtilChangeToResourcesDirectory(AR_UTIL_RESOURCES_DIRECTORY_BEHAVIOR behavior, const char *path)
Change to the resources directory using the specified behavior.
Definition: arUtil.c:1254
arPattDetach
AR_EXTERN int arPattDetach(ARHandle *arHandle)
Reset an ARHandle to no pattern association.
Definition: arPattAttach.c:61
AR_LABELING_THRESH_MODE
AR_LABELING_THRESH_MODE
Values controlling the labeling thresholding mode.
Definition: ar.h:160
AR_LABELING_THRESH_MODE_MANUAL
@ AR_LABELING_THRESH_MODE_MANUAL
Manual threshold selection via arSetLabelingThresh.
Definition: ar.h:161
AR_LABELING_THRESH_MODE_AUTO_MEDIAN
@ AR_LABELING_THRESH_MODE_AUTO_MEDIAN
Automatic threshold selection via full-image histogram median.
Definition: ar.h:162
AR_LABELING_THRESH_MODE_AUTO_ADAPTIVE
@ AR_LABELING_THRESH_MODE_AUTO_ADAPTIVE
Adaptive thresholding.
Definition: ar.h:164
AR_LABELING_THRESH_MODE_AUTO_BRACKETING
@ AR_LABELING_THRESH_MODE_AUTO_BRACKETING
Automatic threshold selection via heuristic-based exposure bracketing.
Definition: ar.h:165
AR_LABELING_THRESH_MODE_AUTO_OTSU
@ AR_LABELING_THRESH_MODE_AUTO_OTSU
Automatic threshold selection via Otsu's method for foreground/background selection.
Definition: ar.h:163
arUtilGetPixelFormatName
AR_EXTERN const char * arUtilGetPixelFormatName(const AR_PIXEL_FORMAT arPixelFormat)
Get a string holding a descriptive name for a given pixel format enumeration.
Definition: arUtil.c:423
ar3DStereoChangeLoopBreakThresh
AR_EXTERN int ar3DStereoChangeLoopBreakThresh(AR3DStereoHandle *handle, ARdouble loopBreakThresh)
Definition: ar3DCreateHandle.c:145
arGetTransMatSquareCont
AR_EXTERN ARdouble arGetTransMatSquareCont(AR3DHandle *handle, ARMarkerInfo *marker_info, ARdouble initConv[3][4], ARdouble width, ARdouble conv[3][4])
(description)
Definition: arGetTransMat.c:101
arPattLoad
AR_EXTERN int arPattLoad(ARPattHandle *pattHandle, const char *filename)
Load a pattern file into a pattern handle.
Definition: arPattLoad.c:144
arDeleteHandle
AR_EXTERN int arDeleteHandle(ARHandle *handle)
Delete a handle which holds settings for an artoolkitX tracker instance.
Definition: arCreateHandle.c:102
arUtilMatMuldff
AR_EXTERN int arUtilMatMuldff(const ARdouble s1[3][4], const float s2[3][4], float d[3][4])
Definition: arUtil.c:169
AR_MARKER_INFO_CUTOFF_PHASE
AR_MARKER_INFO_CUTOFF_PHASE
Result codes returned by arDetectMarker to report state of individual detected trapezoidal regions.
Definition: ar.h:189
AR_MARKER_INFO_CUTOFF_PHASE_MATCH_CONFIDENCE
@ AR_MARKER_INFO_CUTOFF_PHASE_MATCH_CONFIDENCE
Matching confidence cutoff value not reached.
Definition: ar.h:196
AR_MARKER_INFO_CUTOFF_PHASE_POSE_ERROR_MULTI
@ AR_MARKER_INFO_CUTOFF_PHASE_POSE_ERROR_MULTI
Multi-marker pose error value exceeded.
Definition: ar.h:198
AR_MARKER_INFO_CUTOFF_PHASE_MATCH_CONTRAST
@ AR_MARKER_INFO_CUTOFF_PHASE_MATCH_CONTRAST
Insufficient contrast during matching.
Definition: ar.h:193
AR_MARKER_INFO_CUTOFF_PHASE_MATCH_BARCODE_EDC_FAIL
@ AR_MARKER_INFO_CUTOFF_PHASE_MATCH_BARCODE_EDC_FAIL
Barcode matching error detection/correction found unrecoverable error.
Definition: ar.h:195
AR_MARKER_INFO_CUTOFF_PHASE_POSE_ERROR
@ AR_MARKER_INFO_CUTOFF_PHASE_POSE_ERROR
Maximum allowable pose error exceeded.
Definition: ar.h:197
AR_MARKER_INFO_CUTOFF_PHASE_PATTERN_EXTRACTION
@ AR_MARKER_INFO_CUTOFF_PHASE_PATTERN_EXTRACTION
Failure during pattern extraction.
Definition: ar.h:191
AR_MARKER_INFO_CUTOFF_PHASE_MATCH_GENERIC
@ AR_MARKER_INFO_CUTOFF_PHASE_MATCH_GENERIC
Generic error during matching phase.
Definition: ar.h:192
AR_MARKER_INFO_CUTOFF_PHASE_NONE
@ AR_MARKER_INFO_CUTOFF_PHASE_NONE
Marker OK.
Definition: ar.h:190
AR_MARKER_INFO_CUTOFF_PHASE_HEURISTIC_TROUBLESOME_MATRIX_CODES
@ AR_MARKER_INFO_CUTOFF_PHASE_HEURISTIC_TROUBLESOME_MATRIX_CODES
Heuristic-based rejection of troublesome matrix code which is often generated in error.
Definition: ar.h:199
AR_MARKER_INFO_CUTOFF_PHASE_MATCH_BARCODE_NOT_FOUND
@ AR_MARKER_INFO_CUTOFF_PHASE_MATCH_BARCODE_NOT_FOUND
Barcode matching could not find correct barcode locator pattern.
Definition: ar.h:194
arSetLabelingThreshModeAutoInterval
AR_EXTERN void arSetLabelingThreshModeAutoInterval(ARHandle *handle, const int interval)
Set the number of frames between auto-threshold calculations.
Definition: arCreateHandle.c:231
ar3DChangeMaxLoopCount
AR_EXTERN int ar3DChangeMaxLoopCount(AR3DHandle *handle, int maxLoopCount)
(description)
Definition: ar3DCreateHandle.c:89
ARInt32
int ARInt32
Definition: ar.h:91
ar3DStereoCreateHandle2
AR_EXTERN AR3DStereoHandle * ar3DStereoCreateHandle2(const ARdouble cparaL[3][4], const ARdouble cparaR[3][4], const ARdouble transL[3][4], const ARdouble transR[3][4])
Definition: ar3DCreateHandle.c:113
arGetMarkerExtractionMode
AR_EXTERN int arGetMarkerExtractionMode(ARHandle *handle)
Get the marker extraction mode.
Definition: arCreateHandle.c:353
ARUint16
unsigned short ARUint16
Definition: ar.h:93
arDetectMarker
AR_EXTERN int arDetectMarker(ARHandle *arHandle, AR2VideoBufferT *frame)
Detect markers in a video frame.
Definition: arDetectMarker.c:62
ar3DStereoCreateHandle
AR_EXTERN AR3DStereoHandle * ar3DStereoCreateHandle(const ARParam *arParamL, const ARParam *arParamR, const ARdouble transL[3][4], const ARdouble transR[3][4])
Definition: ar3DCreateHandle.c:107
arSetLabelingThreshAutoAdaptiveKernelSize
AR_EXTERN void arSetLabelingThreshAutoAdaptiveKernelSize(ARHandle *handle, const int labelingThreshAutoAdaptiveKernelSize)
Definition: arCreateHandle.c:239
arUtilPrintTransMat
AR_EXTERN void arUtilPrintTransMat(const ARdouble trans[3][4])
Prints a transformation matrix via ARPRINT(...).
Definition: arUtil.c:1362
arUtilMat2QuatPos
AR_EXTERN int arUtilMat2QuatPos(const ARdouble m[3][4], ARdouble q[4], ARdouble p[3])
Definition: arUtil.c:252
arGetTransMatSquare
AR_EXTERN ARdouble arGetTransMatSquare(AR3DHandle *handle, ARMarkerInfo *marker_info, ARdouble width, ARdouble conv[3][4])
(description)
Definition: arGetTransMat.c:53
ar3DStereoChangeCpara
AR_EXTERN int ar3DStereoChangeCpara(AR3DStereoHandle *handle, ARdouble cparaL[3][4], ARdouble cparaR[3][4])
Definition: ar3DCreateHandle.c:155
arPattSave
AR_EXTERN int arPattSave(ARUint8 *image, int xsize, int ysize, int pixelFormat, ARParamLTf *paramLTf, int imageProcMode, ARMarkerInfo *marker_info, ARdouble pattRatio, int pattSize, const char *filename)
Save a pattern to a pattern file.
Definition: arPattSave.c:42
arUtilPrintMtx16
AR_EXTERN void arUtilPrintMtx16(const ARdouble mtx16[16])
Prints a 4x4 row-major matrix via ARPRINT(...).
Definition: arUtil.c:1370
arGetLabelingThreshModeAutoInterval
AR_EXTERN int arGetLabelingThreshModeAutoInterval(const ARHandle *handle)
Get the number of frames between auto-threshold calculations.
Definition: arCreateHandle.c:269
ar3DChangeLoopBreakThreshRatio
AR_EXTERN int ar3DChangeLoopBreakThreshRatio(AR3DHandle *handle, ARdouble loopBreakThreshRatio)
(description)
Definition: ar3DCreateHandle.c:99
arGetLabelingThreshAutoAdaptiveBias
AR_EXTERN int arGetLabelingThreshAutoAdaptiveBias(ARHandle *handle)
Definition: arCreateHandle.c:262
arGetSquareFitThresh
AR_EXTERN ARdouble arGetSquareFitThresh(ARHandle *handle)
Definition: arCreateHandle.c:498
arSetPixelFormat
AR_EXTERN void arSetPixelFormat(ARHandle *handle, AR_PIXEL_FORMAT pixFormat)
Set the expected pixel format for video frames being passed to arDetectMarker.
Definition: arCreateHandle.c:390
arPattActivate
AR_EXTERN int arPattActivate(ARPattHandle *pattHandle, int patno)
Activate a previously deactivated pattern.
Definition: arPattLoad.c:170
arUtilMatMulf
AR_EXTERN int arUtilMatMulf(const float s1[3][4], const float s2[3][4], float d[3][4])
Definition: arUtil.c:185
arSetPattRatio
AR_EXTERN void arSetPattRatio(ARHandle *handle, const ARdouble pattRatio)
Set the width/height of the marker pattern space, as a proportion of marker width/height.
Definition: arCreateHandle.c:375
arMarkerInfoCutoffPhaseDescriptions
AR_EXTERN const char * arMarkerInfoCutoffPhaseDescriptions[AR_MARKER_INFO_CUTOFF_PHASE_DESCRIPTION_COUNT]
Definition: arDetectMarker.c:47
ARUint32
unsigned int ARUint32
Definition: ar.h:94
arUtilMatMul
AR_EXTERN int arUtilMatMul(const ARdouble s1[3][4], const ARdouble s2[3][4], ARdouble d[3][4])
Definition: arUtil.c:152
AR_EXTERN
#define AR_EXTERN
Definition: ar.h:131
arCreateHandle
AR_EXTERN ARHandle * arCreateHandle(ARParamLT *paramLT)
Create a handle to hold settings for an artoolkitX tracker instance.
Definition: arCreateHandle.c:53
arSetLabelingMode
AR_EXTERN void arSetLabelingMode(ARHandle *handle, int mode)
Select between detection of black markers and white markers.
Definition: arCreateHandle.c:145
arUtilGetFileBasenameFromPath
AR_EXTERN char * arUtilGetFileBasenameFromPath(const char *path, const int convertToLowercase)
Get file base name from a path.
Definition: arUtil.c:469
ar3DCreateHandle
AR_EXTERN AR3DHandle * ar3DCreateHandle(const ARParam *arParam)
Create handle used for 3D calculation from calibrated camera parameters.
Definition: ar3DCreateHandle.c:52
ar3DChangeCpara
AR_EXTERN int ar3DChangeCpara(AR3DHandle *handle, const ARdouble cpara[3][4])
(description)
Definition: ar3DCreateHandle.c:83
arPattGetImage3
AR_EXTERN int arPattGetImage3(ARHandle *arHandle, int markerNo, ARUint8 *image, ARPattRectInfo *rect, int xsize, int ysize, int overSampleScale, ARUint8 *outImage)
Extract the image (i.e. locate and unwarp) of an arbitrary portion of a detected square.
Definition: arPattGetID.c:1527
arPattGetImage
AR_EXTERN int arPattGetImage(int imageProcMode, int pattDetectMode, int patt_size, int sample_size, ARUint8 *image, int xsize, int ysize, AR_PIXEL_FORMAT pixelFormat, int *x_coord, int *y_coord, int *vertex, ARdouble pattRatio, ARUint8 *ext_patt)
Definition: arPattGetID.c:286
arUtilMatInvf
AR_EXTERN int arUtilMatInvf(const float s[3][4], float d[3][4])
Definition: arUtil.c:227
AR_MARKER_INFO_CUTOFF_PHASE_DESCRIPTION_COUNT
#define AR_MARKER_INFO_CUTOFF_PHASE_DESCRIPTION_COUNT
Definition: ar.h:202
arUtilRemoveExt
AR_EXTERN int arUtilRemoveExt(char *filename)
Definition: arUtil.c:1328
AR_MATRIX_CODE_TYPE_ECC_BCH___19
#define AR_MATRIX_CODE_TYPE_ECC_BCH___19
BCH code with Hamming distance of 19.
Definition: ar.h:315
arGetTransMatSquareContStereo
AR_EXTERN ARdouble arGetTransMatSquareContStereo(AR3DStereoHandle *handle, ARMarkerInfo *marker_infoL, ARMarkerInfo *marker_infoR, ARdouble prev_conv[3][4], ARdouble width, ARdouble conv[3][4])
Definition: arGetTransMatStereo.c:153
arGetStereoMatchingErrorSquare
AR_EXTERN ARdouble arGetStereoMatchingErrorSquare(AR3DStereoHandle *handle, ARMarkerInfo *marker_infoL, ARMarkerInfo *marker_infoR)
Definition: ar3DUtil.c:54
arUtilGetResourcesDirectoryPath
AR_EXTERN char * arUtilGetResourcesDirectoryPath(AR_UTIL_RESOURCES_DIRECTORY_BEHAVIOR behavior)
Get the path to the resources directory using the specified behavior.
Definition: arUtil.c:721
AR_MATRIX_CODE_TYPE_ECC_BCH___7
#define AR_MATRIX_CODE_TYPE_ECC_BCH___7
BCH code with Hamming distance of 7.
Definition: ar.h:312
arConfig.h
AR_LABELING_LABEL_TYPE
#define AR_LABELING_LABEL_TYPE
Definition: arConfig.h:111
AR_SQUARE_MAX
#define AR_SQUARE_MAX
Definition: arConfig.h:117
AR_CHAIN_MAX
#define AR_CHAIN_MAX
Definition: arConfig.h:119
AR_LABELING_WORK_SIZE
#define AR_LABELING_WORK_SIZE
Definition: arConfig.h:110
arImageProc.h
artoolkitX functions for 2D luminance image processing.
icp.h
log.h
Logging utilities.
matrix.h
param.h
artoolkitX functions for handling calibrated camera parameters.
_ARImageProcInfo
Structure holding settings for an instance of the image-processing pipeline.
Definition: arImageProc.h:68
AR2VideoBufferT
A structure which carries information about a video frame retrieved by the video library.
Definition: ar.h:148
AR2VideoBufferT::time
AR2VideoTimestampT time
Time at which buff was filled.
Definition: ar.h:154
AR2VideoBufferT::bufPlaneCount
unsigned int bufPlaneCount
For multi-planar video frames, this is the number of frame planes. For single-plane formats,...
Definition: ar.h:151
AR2VideoBufferT::bufPlanes
ARUint8 ** bufPlanes
For multi-planar video frames, this must be an array of length bufPlaneCount of (ARUint8*),...
Definition: ar.h:150
AR2VideoBufferT::fillFlag
int fillFlag
Set non-zero when buff is valid.
Definition: ar.h:153
AR2VideoBufferT::buff
ARUint8 * buff
A pointer to the packed video data for this video frame. The video data pixel format is as specified ...
Definition: ar.h:149
AR2VideoBufferT::buffLuma
ARUint8 * buffLuma
A pointer to a luminance-only version of the image. For luminance-only video formats this pointer is ...
Definition: ar.h:152
AR2VideoTimestampT
A structure to hold a timestamp in seconds and microseconds, with arbitrary epoch.
Definition: ar.h:139
AR2VideoTimestampT::sec
uint64_t sec
Definition: ar.h:140
AR2VideoTimestampT::usec
uint32_t usec
Definition: ar.h:141
AR3DHandle
Structure holding state of an instance of the monocular pose estimator.
Definition: ar.h:385
AR3DHandle::icpHandle
ICPHandleT * icpHandle
Definition: ar.h:386
AR3DStereoHandle
Structure holding state of an instance of the stereo pose estimator.
Definition: ar.h:395
AR3DStereoHandle::icpStereoHandle
ICPStereoHandleT * icpStereoHandle
Definition: ar.h:396
ARHandle
Structure holding state of an instance of the square marker tracker.
Definition: ar.h:342
ARHandle::labelInfo
ARLabelInfo labelInfo
Definition: ar.h:360
ARHandle::areaMax
ARdouble areaMax
Definition: ar.h:373
ARHandle::arCornerRefinementMode
int arCornerRefinementMode
Definition: ar.h:372
ARHandle::arLabelingThreshAutoInterval
int arLabelingThreshAutoInterval
Definition: ar.h:363
ARHandle::matrixCodeType
AR_MATRIX_CODE_TYPE matrixCodeType
When matrix code pattern detection mode is active, indicates the type of matrix code to detect.
Definition: ar.h:371
ARHandle::arPixelFormat
AR_PIXEL_FORMAT arPixelFormat
Definition: ar.h:344
ARHandle::arImageProcInfo
ARImageProcInfo * arImageProcInfo
Definition: ar.h:369
ARHandle::arImageProcMode
int arImageProcMode
To query this value, call arGetImageProcMode(). To set this value, call arSetImageProcMode().
Definition: ar.h:348
ARHandle::arLabelingThresh
int arLabelingThresh
Definition: ar.h:347
ARHandle::arPatternDetectionMode
int arPatternDetectionMode
Definition: ar.h:349
ARHandle::arLabelingThreshAutoBracketUnder
int arLabelingThreshAutoBracketUnder
Definition: ar.h:366
ARHandle::arLabelingThreshAutoAdaptiveBias
int arLabelingThreshAutoAdaptiveBias
Definition: ar.h:368
ARHandle::pattRatio
ARdouble pattRatio
A value between 0.0 and 1.0, representing the proportion of the marker width which constitutes the pa...
Definition: ar.h:370
ARHandle::arPixelSize
int arPixelSize
Definition: ar.h:345
ARHandle::arLabelingThreshAutoAdaptiveKernelSize
int arLabelingThreshAutoAdaptiveKernelSize
Definition: ar.h:367
ARHandle::arParamLT
ARParamLT * arParamLT
Definition: ar.h:351
ARHandle::marker2_num
int marker2_num
Definition: ar.h:356
ARHandle::history_num
int history_num
Definition: ar.h:358
ARHandle::areaMin
ARdouble areaMin
Definition: ar.h:374
ARHandle::arLabelingThreshMode
AR_LABELING_THRESH_MODE arLabelingThreshMode
Definition: ar.h:362
ARHandle::arLabelingMode
int arLabelingMode
Definition: ar.h:346
ARHandle::arDebug
int arDebug
Definition: ar.h:343
ARHandle::pattHandle
ARPattHandle * pattHandle
Definition: ar.h:361
ARHandle::xsize
int xsize
Definition: ar.h:352
ARHandle::ysize
int ysize
Definition: ar.h:353
ARHandle::arMarkerExtractionMode
int arMarkerExtractionMode
Definition: ar.h:350
ARHandle::arLabelingThreshAutoBracketOver
int arLabelingThreshAutoBracketOver
Definition: ar.h:365
ARHandle::squareFitThresh
ARdouble squareFitThresh
Definition: ar.h:375
ARHandle::marker_num
int marker_num
Definition: ar.h:354
ARHandle::arLabelingThreshAutoIntervalTTL
int arLabelingThreshAutoIntervalTTL
Definition: ar.h:364
ARLabelInfo
(description)
Definition: ar.h:247
ARLabelInfo::bwImage
ARUint8 * bwImage
Definition: ar.h:250
ARLabelInfo::label_num
int label_num
Definition: ar.h:252
ARLabelInfo::labelImage
AR_LABELING_LABEL_TYPE * labelImage
Definition: ar.h:248
ARMarkerInfo2
Captures detail of a trapezoidal region which is a candidate for marker detection.
Definition: ar.h:171
ARMarkerInfo2::area
int area
Area in pixels.
Definition: ar.h:172
ARMarkerInfo2::coord_num
int coord_num
Number of coordinates in x_coord, y_coord.
Definition: ar.h:174
ARMarkerInfo
Describes a detected trapezoidal area (a candidate for a marker match).
Definition: ar.h:213
ARMarkerInfo::area
int area
Area in pixels of the largest connected region, comprising the marker border and regions connected to...
Definition: ar.h:214
ARMarkerInfo::markerInfo2Ptr
ARMarkerInfo2 * markerInfo2Ptr
Pointer to source region info for this marker.
Definition: ar.h:227
ARMarkerInfo::dir
int dir
If pattern detection mode is either pattern mode OR matrix but not both, and id != -1,...
Definition: ar.h:218
ARMarkerInfo::cf
ARdouble cf
If pattern detection mode is either pattern mode OR matrix but not both, will be marker matching conf...
Definition: ar.h:221
ARMarkerInfo::dirMatrix
int dirMatrix
If pattern detection mode includes a matrix mode, and id != -1, will be marker direction (range 0 to ...
Definition: ar.h:220
ARMarkerInfo::dirPatt
int dirPatt
If pattern detection mode includes a pattern mode, and id != -1, will be marker direction (range 0 to...
Definition: ar.h:219
ARMarkerInfo::cfMatrix
ARdouble cfMatrix
If pattern detection mode includes a matrix mode, will be marker matching confidence (range 0....
Definition: ar.h:223
ARMarkerInfo::errorCorrected
int errorCorrected
For marker types including error detection and correction, the numbers of errors detected and correct...
Definition: ar.h:229
ARMarkerInfo::id
int id
If pattern detection mode is either pattern mode OR matrix but not both, will be marker ID (>= 0) if ...
Definition: ar.h:215
ARMarkerInfo::idPatt
int idPatt
If pattern detection mode includes a pattern mode, will be marker ID (>= 0) if marker is valid,...
Definition: ar.h:216
ARMarkerInfo::idMatrix
int idMatrix
If pattern detection mode includes a matrix mode, will be marker ID (>= 0) if marker is valid,...
Definition: ar.h:217
ARMarkerInfo::matched
int matched
Initialised to 0 during marker detection, a non-zero value indicates that this marker has already bee...
Definition: ar.h:231
ARMarkerInfo::cutoffPhase
AR_MARKER_INFO_CUTOFF_PHASE cutoffPhase
If a trapezoidal region is detected, but is eliminated from the candidates for tracking,...
Definition: ar.h:228
ARMarkerInfo::globalID
uint64_t globalID
If arPattDetectionMode is a matrix mode, matrixCodeType is AR_MATRIX_CODE_GLOBAL_ID,...
Definition: ar.h:230
ARMarkerInfo::cfPatt
ARdouble cfPatt
If pattern detection mode includes a pattern mode, will be marker matching confidence (range 0....
Definition: ar.h:222
ARParam
Structure holding camera parameters, including image size, projection matrix and lens distortion para...
Definition: param.h:99
ARParamLT
Structure holding camera parameters, in lookup table form.
Definition: param.h:151
ARParamLTf
Structure holding camera parameters, in lookup table form; floating point version.
Definition: param.h:120
ARPattHandle
A structure which holds descriptions of trained patterns for template matching.
Definition: ar.h:268
ARPattHandle::pattpow
ARdouble * pattpow
Root-mean-square of the pattern intensities.
Definition: ar.h:273
ARPattHandle::patt_num
int patt_num
Number of valid patterns in the structure.
Definition: ar.h:269
ARPattHandle::pattSize
int pattSize
Number of rows/columns in the pattern.
Definition: ar.h:277
ARPattHandle::patt
int ** patt
Array of 4 different orientations of each pattern's colour values, in 1-byte per component BGR order.
Definition: ar.h:272
ARPattHandle::pattBW
int ** pattBW
Array of 4 different orientations of each pattern's 1-byte luminosity values.
Definition: ar.h:274
ARPattHandle::pattpowBW
ARdouble * pattpowBW
Root-mean-square of the pattern intensities.
Definition: ar.h:275
ARPattHandle::pattf
int * pattf
0 = no pattern loaded at this position. 1 = pattern loaded and activated. 2 = pattern loaded but deac...
Definition: ar.h:271
ARPattHandle::patt_num_max
int patt_num_max
Maximum number of patterns that may be loaded in this structure.
Definition: ar.h:270
ARPattRectInfo
Defines a pattern rectangle as a sub-portion of a marker image.
Definition: ar.h:286
ARPattRectInfo::bottomRightX
float bottomRightX
Horizontal coordinate of the bottom right corner of the pattern space, in range 0....
Definition: ar.h:289
ARPattRectInfo::bottomRightY
float bottomRightY
Vertical coordinate of the bottom right corner of the pattern space, in range 0.0f-1....
Definition: ar.h:290
ARPattRectInfo::topLeftY
float topLeftY
Vertical coordinate of the top left corner of the pattern space, in range 0.0f-1.0f.
Definition: ar.h:288
ARPattRectInfo::topLeftX
float topLeftX
Horizontal coordinate of the top left corner of the pattern space, in range 0.0f-1....
Definition: ar.h:287
ARTrackingHistory
(description)
Definition: ar.h:238
ARTrackingHistory::count
int count
Definition: ar.h:240
ARTrackingHistory::marker
ARMarkerInfo marker
Definition: ar.h:239
ICPHandleT
Definition: icp.h:75
ICPStereoHandleT
Definition: icp.h:84