Почему метод getAllTrackables возвращает только одно лицо? - PullRequest
0 голосов
/ 22 февраля 2019

Я использую образец новой версии (1.7.0).

В примере с AugmentedFace, почему приведенный ниже оператор возвращает только одно лицо?

Collection<AugmentedFace> faceList =
          sceneView.getSession().getAllTrackables(AugmentedFace.class);

Я что-то пропустил?или это просто ограничение?

Ответы [ 2 ]

0 голосов
/ 24 апреля 2019

Функция дополненных граней ARCore была разработана для работы в основном с одним лицом.Но вы можете использовать его для большего числа лиц.

// Get a list of detected faces.
Collection<AugmentedFace> faceList = session.getAllTrackables(AugmentedFace.class);


for (AugmentedFace face : faceList) {

    // Create a face nodes and add it to the scene.
    AugmentedFaceNode faceNode1 = new AugmentedFaceNode(face);
    AugmentedFaceNode faceNode2 = new AugmentedFaceNode(face);
    faceNode1.setParent(scene);
    faceNode2.setParent(scene);

    // Overlay the 3D assets on faces.
    faceNode1.setFaceRegionsRenderable(faceRegionsRenderable1);
    faceNode2.setFaceRegionsRenderable(faceRegionsRenderable2);

    // Overlay textures on faces.
    faceNode1.setFaceMeshTexture(faceMeshTexture1);
    faceNode2.setFaceMeshTexture(faceMeshTexture2);
}
0 голосов
/ 22 февраля 2019

Возвращает несколько граней, когда это возможно.

Доступ к нему осуществляется с помощью цикла for:

for (AugmentedFace face : faceList) {
    AugmentedFaceNode node = new AugmentedFaceNode(face);
    //create models/texture, setParent, etc
}
...