[英]How to count found markers rajawali vuforia?
我正在尝试获取在rajawali vuforia上找到的标记的数量。
虽然我们有方法:
1- protected void foundFrameMarker(final int markerId, Vector3 position,Quaternion orientation) {} // this method is called when found any marker until the marker disappeared
2- public void noFrameMarkersFound() {} // this method is called when no markers appeared or found
如何使用这些方法来计算发现的标记数? 还是有另一种方法来获得计数?
对于循环中每个帧中的每个当前检测到的标记,将调用foundFrameMarker
。 为了计算找到的标记,您应该在渲染器中添加一个int变量以对其进行计数。 在渲染循环( onRenderFrame
)的开始处将其重置,并在foundFrameMarker
内部将其foundFrameMarker
:
public void onRenderFrame(GL10 gl) {
...
mMarkerCount = 0;
...
}
protected void foundFrameMarker(int markerId, Vector3 position, Quaternion orientation) {
mMarkerCount++;
...
}
@yakobom的答案解决了问题,但是它重复计数每帧,因此我添加了一些代码:我在onCreate(...)
的活动类上初始化了另一个int以获取mMarkerCount
达到的max
计数,我添加了一个刷新每秒将其设置为TextFeild并重置最大值。
在onCreate的Activity类中:
Thread t = new Thread() {
@Override
public void run() {
try {
while (!isInterrupted()) {
Thread.sleep(1000);
runOnUiThread(new Runnable() {
@Override
public void run() {
te.setText(mRenderer.max+"");
mRenderer.max=0;
}
});
}
} catch (InterruptedException e) {
}
}
};
t.start();
在“渲染器”类中:
protected void foundFrameMarker(int markerId, Vector3 position,
Quaternion orientation) {
...
mMarkerCount++;
if (mMarkerCount > max)
max = mMarkerCount;
...
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.