HTC One M8 - 使用第二款后置摄像头

时间:2015-01-29 13:44:50

标签: android opencv camera htc-android

我有一台HTC One M8设备,它有2个后置摄像头和一个额外的前置摄像头。我的问题是试图进入第二台后置摄像头;我设法制作了一个同时运行2个摄像头的应用程序(1个前置和1个后置摄像头),但问题是我无法访问第二个后置摄像头。

我试图通过openCV和android camera2访问相机,代码如下:

openCV for Android:

CameraBridgeViewBase mOpenCvCameraView2;
mOpenCvCameraView2.setCameraIndex(int value);

其中值可能为0 - 第一个后置摄像头,1个前置摄像头; 2 - 不适用于后方(100也不起作用,因为我在HTC页面上找到了它)

正常的android代码:

CameraManager manager = (CameraManager) getSystemService( Context.CAMERA_SERVICE);
   try {
       String[] cameraList = manager.getCameraIdList();
       Log.i("Number of cameras", Integer.toString(cameraList.length));
    } catch (CameraAccessException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

此代码将打印设备可访问的摄像机数量;但是,它告诉我它只有2个。

那么,有没有人知道我可以做些什么才能进入第二款后置摄像头?

2 个答案:

答案 0 :(得分:0)

根据我使用HTC EVO 3D的经验以及此处的一些文章(例如Unable to use both cameras of Evo 4G using OpenCV4Android)中所述,不支持单独访问一个或另一个后置摄像头的选项。您可以从两个相机获得合成图像(立体视图),但就是这样。

答案 1 :(得分:0)

维基百科explains第二个传感器不是真正的相机:

  

使用由2.0微米像素组成的“UltraPixel”图像传感器(OmniVision OV4688),主摄像头保持相对不变。 UltraPixel传感器已更新,可在照明照片中提供更好的色彩准确度,现在该设备还包括双色调闪光灯。主摄像机配有第二个200万像素深度的现场传感器(OmniVision OV2722),位于主摄像头正上方,作为设备“Duo Camera”系统的一部分。传感器分析照片中元素的距离和位置,并生成深度图,嵌入在每张照片中。

也许有一些后门可以直接访问OV2722传感器,但无论如何都不会给你一个传统的图像。