我试图在相机预览帧上应用人脸检测。我正在使用OpenGL和OpenCV在运行时处理这些相机帧。使用OpenGL的Android相机帧处理
@Override
public void onDrawFrame(GL10 unused) {
if (VERBOSE) {
Log.d(TAG, "onDrawFrame tex=" + mTextureId);
}
mSurfaceTexture.updateTexImage();
mSurfaceTexture.getTransformMatrix(mSTMatrix);
// TODO: need to implement
//JniCppManager.processFrame();
drawFrame(mTextureId, mSTMatrix);
}
我想实现processFrame()的C++实现。我如何从转换矩阵中获取C++中的Mat对象?任何人都可以向我提供一些解决方案的指针。
来自'getTransformMatrix()'的值是一个4x4矩阵,表示为按列主序排列的16元素线性数组。 OpenCV'Mat'类当然可以表示这一点,但是您是否试图获取(通常是平凡的)转换矩阵或像素数据本身并不清楚。 – fadden
感谢Fadden的回应。我最终的目标是覆盖基于图像识别的静态图像。例如在特定的地标上覆盖胡须。我认为我需要像素数据。 – muneikh