ARTKBlender is Python module providing access to ARToolKit library in Blender and Blender Game Engine. Its functionality is focused to fulfill needs for augmented reality support in Blender, therefore it’s quite limited (for now at least). Module’s API mimics structures and interfaces from ARToolKit, simplifying naming where possible.
Class ARHandle
Main class for data processing. Detects visual markers on images.
Constructor
ARHandle(ARParam param, int pixelFormat) – creates object from parameter object and pixel format. Available pixel formats are defined in ARPixelFormat enumeration.
Attributes
pixelFormat: int, read only – type of processed pixel format as defined in constructor.
attachPatt: ARPattHandle, read/write – attached handle for list of detection patterns.
markers: list of ARMarkerInfo, read only – list of detected markers generated by call to detect() method.
Methods
detect(image) – detects appearance of patterns in image. If detection failed, returns False. Returning True doesn’t guarantee it has detected any markers. As parameter can be used python buffer or Blender bgl.Buffer object.
Class ARParam
Class storing camera parameters.
Attributes
size: tuple of int, read/write – sizes of camera image (width, height).
matrix: tuple of floats 3×4, read only – camera view matrix.
distFactor: tuple of floats, read only – distorsion factors of camera image.
Methods
load(fileName) – loads camera parameters from file. File contains ARToolKit definition of camera parameters. Default file is from ARToolKit, which also provides tool for camera calibration.
Class ARPattHandle
Class storing patterns for markers detection.
Methods
load(fileName) – loads pattern definition from file (usually has „.patt“ extension). Returns index for loaded pattern or -1 if load failed.
Class ARMarkerInfo
Class storing data for identified marker.
Attributes
id: int, read only – index of pattern loaded in ARPattHandle object.
cf: float, read only – detection confidence value in range <0.0; 1.0> defines quality of pattern detection. The higher value is better.
Class AR3DHandle
Class for calculation of 3D data from detected markers. Transformation matrices calculated in object’s methods can be directly used by blender’s mathutils.Matrix constructor.
Constructor
AR3DHandle(ARParam param) – creates object from parameter object.
Methods
getTransMatSquare(marker, width) – calculates transformation matrix for provided ARMarkerInfo using defined size of pattern square. Returns matrix as tuple of rows of floats or None if calculation failed.
getTransMatSquareCont(marker, width, prevMat) – calculates transformation matrix for provided ARMarkerInfo using defined size of pattern square and previous transformation matrix. Returns matrix as tuple of rows of floats or None if calculation failed. Argument prevMat is tuple of rows of floats, can be prepared from blender’s mathutils.Matrix object.
Class ARPixelFormat
Enumeration class defining pixel format values:
INVALID, ABGR, ARGB, BGR, BGRA, MONO, NV21, RGB, RGBA, RGBA_4444, RGBA_5551, RGB_565, UYVY, YUY2, _420f, _420v
It’s necessary to use proper pixel format to correctly analyse provided video frames.