相关站点
jsartoolkit5 - ARToolkit.js
Talkingdata - 用数据的心智去超越
three.js 系列教程 - 良心之作
JSARToolKit 支持多种标记
图案标记
var video = document.querySelector('video');
var ar = new ARController(video.videoWidth, video.videoHeight, 'Data/camera_para.dat');
ar.onload = function() {
var markerId;
// Load pattern marker.
//
ar.loadMarker('Data/patt.hiro', function(marker) {
markerId = marker;
});
ar.addEventListener('getMarker', function(ev) {
if (ev.data.marker.idPatt === markerId) {
console.log('saw marker', ev.data.marker);
console.log('transformation matrix', ar.getTransformationMatrix());
}
});
console.log('camera matrix', ar.getCameraMatrix());
setInterval(function() {
ar.process(video);
}, 33);
};复制代码
条码标记
arController.setPatternDetectionMode( artoolkit.AR_MATRIX_CODE_DETECTION );
arController.addEventListener('getMarker', function(ev) {
console.log('saw barcode marker', ev.data.marker.idMatrix);
});复制代码
混合模式跟踪
arController.setPatternDetectionMode( artoolkit.AR_TEMPLATE_MATCHING_COLOR_AND_MATRIX );
arController.addEventListener('getMarker', function(ev) {
if (ev.data.marker.idMatrix !== -1) {
console.log('saw barcode marker', ev.data.marker.idMatrix);
}
if (ev.data.marker.idPatt !== -1) {
console.log('saw pattern marker', ev.data.marker.idPatt);
}
});复制代码
NFT标记
多标记跟踪
var markerId;
var markerCount = 0;
// Load multimarker.
//
arController.loadMultiMarker('Data/multi-barcode-4x3.dat', function(marker, subMarkerCount) {
markerId = marker;
markerCount = subMarkerCount;
});
arController.addEventListener('getMultiMarker', function(ev) {
if (ev.data.multiMarkerId === markerId) {
console.log('saw multimarker', ev.data.multiMarkerId);
console.log('transformation matrix', arController.getTransformationMatrix());
}
});
arController.addEventListener('getMultiMarkerSub', function(ev) {
if (ev.data.multiMarkerId === markerId) {
console.log('saw submarker', ev.data.markerId, ev.data.marker);
}
});
复制代码