Mayer
Mayer copied to clipboard
Convert AHardwareBuffer into OpenCV
Hello,
I want to convert AHardwareBuffer
into OpenCV
, have you tried this code? I want to do something similar but the mat
I get is empty
//Convert Android HardwareBuffer to OpenCV Mat
jlong hardwareBufferToMat(AHardwareBuffer* hardwareBuffer) {
AHardwareBuffer_Desc bufferDesc;
AHardwareBuffer_describe(hardwareBuffer, &bufferDesc);
//Get all pixels data
void* buffer;
AHardwareBuffer_lock(hardwareBuffer, AHARDWAREBUFFER_USAGE_CPU_READ_OFTEN, -1, nullptr, &buffer);
//Create OpenCV Mat
auto *mat = new cv::Mat(bufferDesc.height, bufferDesc.width, CV_8UC4, buffer);
AHardwareBuffer_unlock(hardwareBuffer, nullptr);
return (jlong) mat;
}