![](/img/trans.png)
[英]Android Eclipse ADT device configuration for EVO 4G 4.3" layout
[英]Unable to use both cameras of Evo 4G using OpenCV4Android
我打算通过从Evo 3D的两个后置摄像头拍摄两张图片来计算视差图。 但是,我只能使用一台相机。 我尝试了不同的索引。
指数
我曾经使用-1索引获得其他相机,但是它不再起作用。 我正在使用CameraBridgeViewBase
。
我在Google小组android-opencv上看到人们已经成功使用了Evo 3D手机的两个摄像头。 我想知道怎么做吗? 还有其他索引吗? 或者还有其他可以使用的方式。
PS Native Camera不起作用。 (Android 4.0.3)。
随着ICS升级,Android中的立体摄像机ID从2更改为100。 这是Android Camera.open调用使用的常量。 我认为没有任何官方方式可以购买一台或另一台相机。 您只能获得一个图像或两个图像。
就像上面的答案所暗示的那样,我使用100作为Camera Index,但是它不适用于OpenCV,因此我尝试使用Android的Camera SDK,但是出现了一些错误。 但这是HTC Open Sense SDK的一部分,因此我在Eclipse上下载了它,并使用了http://www.htcdev.com/devcenter/opensense-sdk/stereoscopic-3d/s3d-sample-code/ 。 我使用了S3D Camera Demo
的基本文件,并添加了一些其他功能,以便可以访问Camera图像数据并将其转换为OpenCV Mat。
因此,我对该代码的onTouchEvent
函数进行了很少的更改,在此做了更多的代码。
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
// toggle();
//Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
//startActivityForResult(cameraIntent, 1337);
int bufferSize = width * height * 3;
byte[] mPreviewBuffer = null;
// New preview buffer.
mPreviewBuffer = new byte[bufferSize + 4096];
// with buffer requires addbuffer.
camera.addCallbackBuffer(mPreviewBuffer);
camera.setPreviewCallbackWithBuffer(mCameraCallback);
break;
default:
break;
}
return true;
}
private final Camera.PreviewCallback mCameraCallback = new Camera.PreviewCallback() {
public void onPreviewFrame(byte[] data, Camera c) {
Log.d(TAG, "ON Preview frame");
img = new Mat(height, width, CvType.CV_8UC1);
gray = new Mat(height, width, CvType.CV_8UC1);
img.put(0, 0, data);
Imgproc.cvtColor(img, gray, Imgproc.COLOR_YUV420sp2GRAY);
String pixvalue = String.valueOf(gray.get(300, 400)[0]);
String pixval1 = String.valueOf(gray.get(300, 400+width/2)[0]);
Log.d(TAG, pixvalue);
Log.d(TAG, pixval1);
// to do the camera image split processing using "data"
}
};
从摄像机获得的图像处于YUV420s
模式,创建4通道Mat时我最初在访问数据时遇到问题。 实际上,它仅需要1通道Mat。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.