Как получить MarkerId в Artoolkitplus в Android
Я использую ARToolkitPlusBenchmark для сканирования AR Tag Marker. Я могу легко обнаружить все маркеры 4096 BCH. Но моя проблема в том, что я не могу понять, как определить каждый идентификатор маркера BCH?
Я нашел код отсюда ARToolkitPlusBenchmark
Я пытался обнаружить маркер в Markerinfo.java
class DetectMarkerWorker extends Thread {
private byte[] curFrame;
public DetectMarkerWorker() {
setPriority(MAX_PRIORITY);
start();
}
@Override
public synchronized void run() {
try {
wait();
} catch (InterruptedException e) {
}
while (true) {
if(!CurrentConfig.ONLY_CAMERA_PREVIEW){
long tick = System.currentTimeMillis();
if (CurrentConfig.USE_ARTOOLKITPLUS) {
timeNativeMarkerDetection = artoolkitPlus_detectmarkers(curFrame, transMatMonitor);
nativeMarkerDetectionHistory.add(timeNativeMarkerDetection);
if(nativeMarkerDetectionHistory.size()>20){
nativeMarkerDetectionHistory.remove(0);
}
for(int i = 0;i<nativeMarkerDetectionHistory.size();i++){
sumNativeMarkerDetection += nativeMarkerDetectionHistory.elementAt(i);
}
avgNativeMarkerDetection = sumNativeMarkerDetection/nativeMarkerDetectionHistory.size();
sumNativeMarkerDetection = 0;
} else {
artoolkit_detectmarkers(curFrame, transMatMonitor);
}
timeJavaMarkerDetection = System.currentTimeMillis() - tick;
javaMarkerDetectionHistory.add(timeJavaMarkerDetection);
if(javaMarkerDetectionHistory.size()>20){
javaMarkerDetectionHistory.remove(0);
}
for(int i = 0;i<javaMarkerDetectionHistory.size();i++){
sumJavaMarkerDetection += javaMarkerDetectionHistory.elementAt(i);
}
avgJavaMarkerDetection = sumJavaMarkerDetection/javaMarkerDetectionHistory.size();
sumJavaMarkerDetection = 0;
}
DebugFps.updateFPS();
try {
wait();
} catch (InterruptedException e) {
}
}
}
iOS В iOS я использую VRToolkit, чтобы найти идентификатор каждого маркера. Это приложение использует ARToolKit plus для обнаружения маркеров на видеокадрах.
Я могу отсканировать все маркеры 4096 BCH, а также тонкий маркер после установки соответствующего свойства в YES и получения каждого идентификатора маркера.
В Android я сталкиваюсь с проблемой.
Пожалуйста, дайте мне знать, если вам нужно больше информации, чтобы понять эту проблему. Я буду очень благодарен за любую помощь или руководство.
1 ответ
Любая причина, почему вы используете ARToolkitPlusBenchmark
для достижения этой цели? Вы пытались смотреть на http://code.google.com/p/andar/
Андар также использует ARToolkit и, если вы видите класс ARObject - он может дать вам идентификатор для маркера, принадлежащего этому объекту.