"We offer new support options and therefor the forums are now in read-only mode! Please check out our Support Center for more information." - Vuforia Engine Team

When to setFrameFormat

I'm trying to use Vuforia's tracking capabilities, while also inspecting images manually for further processing. However, all the images that come out of Vuforia's image queue are grayscale. It seems like Vuforia.setFrameFormat should allow me to ask Vuforia to deliver color images too, but it always fails.

I suspect that is because I'm calling it at the wrong time. If my sequence of events looks something like:

 

this.vuforia = ClassFactory.createVuforiaLocalizer(parameters);

        VuforiaTrackables trackables = this.vuforia.loadTrackablesFromAsset("...");         VuforiaTrackable trackable = trackables.get(0);         vuforia.setFrameQueueCapacity(100);

        waitForStart();

        trackables.activate();

        while(true) {

            BlockingQueue<VuforiaLocalizer.CloseableFrame> frameQueue = vuforia.getFrameQueue();             VuforiaLocalizer.CloseableFrame frame = null;             while ((frame = frameQueue.poll()) != null) {                 for (int i = 0; i < frame.getNumImages(); i++) {                     Image img = frame.getImage(i);                     if (img.getFormat() != PIXEL_FORMAT.GRAYSCALE) {                         nGrayscale++;                     } else {                         nNotGrayscale++;

                }                 LOG("Grayscale count", nGrayscale);  // Grows                 LOG("Non-grayscale count", nNotGrayscale); // Stays at 0                 frame.close();             }

}

 

then where in the process should I set the frame format?

 

Any help is much appreciated!

Hmm, apparently calling setFrameFormat after

this.vuforia = ClassFactory.createVuforiaLocalizer(parameters);

works.