Hi,
I'm trying to track image from pixel buffer (C API), according to this guide: [quote]https://library.vuforia.com/objects/image-targets-api-overview
You can also choose to create an Image Target Observer from an image pixel buffer. To do this, the VuImageTargetBufferConfig needs to be configured with a pixelBuffer, bufferFormat, bufferSize, and targetName.[/quote]
my code:
VuImageTargetBufferConfig imageTargetBufferConfig = vuImageTargetBufferConfigDefault();
imageTargetBufferConfig.pixelBuffer = bitmap;
imageTargetBufferConfig.bufferFormat = VU_IMAGE_PIXEL_FORMAT_RGBA8888;
imageTargetBufferConfig.bufferSize.data[0] = 3498; // bytes per row from AndroidBitmapInfo
imageTargetBufferConfig.bufferSize.data[1] = 2266; // image height in pixels
imageTargetBufferConfig.targetName = "mytarget";
VuImageTargetBufferCreationError creationError;
if (vuEngineCreateImageTargetObserverFromBufferConfig(mEngine, &mObjectObserver, &imageTargetBufferConfig, &creationError) != VU_SUCCESS) {
LOG("Error creating image target observer: 0x%02x", creationError);
mShowErrorCallback("Error creating image target observer");
return false;
}
produces error:
E/AR: Target width must be positive
I/Vuforia: Error creating image target observer: 0x07
i'm trying to add target width to VuImageTargetBufferConfig:
imageTargetBufferConfig.targetWidth = 1.0f; // i tried various values
getting new error:
E/AR: Unable to set the RuntimeImageSource. The target width cannot be 0 or smaller.
A/libc: Fatal signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 0x7c8b98e000 in tid 14989 (DefaultDispatch), pid 14643 (app)
Could you give me some hints, or provide some examples of tracking image from pixel buffer? Having this error with 10.3.2 and 10.4.4 versions of vuforia SDK
Hey,
Hey,
It could be that your buffer size is not correct. Should be a multiplier of 4 (4 bytes per pixel for RGB8888).
Kind regards,
Patrick Scheper
Technical Community Manager
Thanks for the answer
Thanks for the answer
It turned out that I was not passing the pixelBuffer correctly. When i converted it to char array, it worked