如何计算找到的标记 rajawali vuforia?
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
:
内增加它
public void onRenderFrame(GL10 gl) {
...
mMarkerCount = 0;
...
}
protected void foundFrameMarker(int markerId, Vector3 position, Quaternion orientation) {
mMarkerCount++;
...
}
@yakobom 回答解决了问题,但它重复计算每一帧,所以我添加了一些代码:
我初始化了另一个 int 以获得 mMarkerCount
达到的 max
计数,在 onCreate(...)
中的 activity class 我添加了一个每秒刷新一次的计时器来设置将其放入 TextFeild 并重置最大值。
在 Activity class 在 onCreate:
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();
在渲染器上 class:
protected void foundFrameMarker(int markerId, Vector3 position,
Quaternion orientation) {
...
mMarkerCount++;
if (mMarkerCount > max)
max = mMarkerCount;
...
}
我正在尝试获取在 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
:
public void onRenderFrame(GL10 gl) {
...
mMarkerCount = 0;
...
}
protected void foundFrameMarker(int markerId, Vector3 position, Quaternion orientation) {
mMarkerCount++;
...
}
@yakobom 回答解决了问题,但它重复计算每一帧,所以我添加了一些代码:
我初始化了另一个 int 以获得 mMarkerCount
达到的 max
计数,在 onCreate(...)
中的 activity class 我添加了一个每秒刷新一次的计时器来设置将其放入 TextFeild 并重置最大值。
在 Activity class 在 onCreate:
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();
在渲染器上 class:
protected void foundFrameMarker(int markerId, Vector3 position,
Quaternion orientation) {
...
mMarkerCount++;
if (mMarkerCount > max)
max = mMarkerCount;
...
}