如何在Android Native OpenCV的纵向视图中使用前置摄像头

时间:2013-11-26 14:58:24

标签: android opencv native portrait

我正在尝试在Android中使用原生OpenCV(最新版本:OpenCV-2.4.7-android-sdk)。 OpenCV提供的所有样本都使用后置摄像头和横向视图。我需要做以下更改:

  1. 正面相机
  2. 肖像
  3. 录制视频
  4. 首先我添加代码“mOpenCvCameraView.setCameraIndex(1);”使用正面相机。它工作,但屏幕上显示的图像旋转(头朝下)。我必须在OpenCV中使用翻转功能才能正确显示。但是,图像数据也将被翻转。那就是我想做图像处理。我必须进行转置和翻转操作。我尝试了这一步。这真的很耗时。即使我什么都不做,视频也不是实时的。

    其次,为了避免翻转过程,我尝试通过“android:screenOrientation =”portrait“”修改XML文件来使用纵向视图。它也有效,但问题是,只有部分图像可以显示在屏幕上。它看起来像是裁剪的图像。这个问题很常见。我google了很多但仍无法找到解决方案。我发现如果我在Android中使用CameraView类,它将使用默认的相机App。它很好但我不知道如何操作OpenCV的图像数据,因为我是Jave / Android的新手。

    最后,我想将处理过的图像保存到视频中。我注意到OpenCV没有提供这个功能。

    有人可以帮我解决这个问题吗?谢谢。

1 个答案:

答案 0 :(得分:0)

您可以查看我的解决方案here.

我只是在输入“onCameraFrame”事件后操纵图像。

简短说明:我改变了输入矩阵,翻转它并改变大小以适应屏幕。

希望这是有帮助的。