【发布时间】:2016-01-18 20:44:42
【问题描述】:
我正在尝试在相机预览帧上应用人脸检测。我正在使用 OpenGL 和 OpenCV 在运行时处理这些相机帧。
@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 元素线性数组。 OpenCVMat类当然可以代表这一点,但不清楚您是在尝试获取(通常是微不足道的)转换矩阵还是像素数据本身。 -
感谢 Fadden 的回复。我的最终目标是根据图像识别覆盖静态图像。例如在特定地标上覆盖小胡子。我认为为此我需要像素数据。
标签: android opencv opengl-es android-ndk android-camera