OpenCV android ICS

时间:2012-12-30 12:08:11

标签: android opencv android-ndk android-camera

我扩展了一个OpenCV4Android示例(基于2.4.3.1中的JavaCameraView),在我的应用程序中进行了一些视觉处理。除了任何4.x手机外,处理工作在2.3.3及以上版本。我已经研究了这个问题,似乎问题是使用了以下行:

mCamera.setPreviewDisplay(null);

显然,ICS并不喜欢被传递null surfaceView。 4.x的结果是屏幕显示为黑色,并且没有帧传递给onPreviewFrame()。

我非常感谢你们的任何帮助!

可以找到完整的代码here

1 个答案:

答案 0 :(得分:0)

答案是我正在使用2.4.3.1,它不适用于ICS,正如我所说。我没有意识到它已在2.4.3.2中修复,它只是将问题中提到的行改为:

  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
      mSurfaceTexture = new SurfaceTexture(MAGIC_TEXTURE_ID);
      getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
      mCamera.setPreviewTexture(mSurfaceTexture);
  } else
      mCamera.setPreviewDisplay(null);

需要将目标更改为3.0才能使用SurfaceTexture。

您可以在Google Groups中找到有关此问题的更多讨论。