请教一个关于安卓摄像头的问题。

大家好,我最近在做一个用opencv for android的实时图像处理的项目。我发现用opencv调用摄像头读取的图片尺寸大小在不同的设备上面不一样。请教一下:有没有什么方法能够让摄像头在不同设备上读取的图片尺寸大小一样?

摄像头可以选预览尺寸,和拍照尺寸的,只能说有些尺寸大部分手机都有,你可以在预览时检测手机支持的尺寸,并指定尺寸,如果没有这个尺寸,你还是得按其他方法处理。

比如下面设置的尺寸
Camera.Parameters p = camera.getParameters();
//设置拍照尺寸,越大越好
List sizes = p.getSupportedPictureSizes();
StringBuffer sb = new StringBuffer();
for (Camera.Size s : sizes) {
sb.append("[" + s.width + "*" + s.height + "],");
if (mPictureSize == null || mPictureSize.width * mPictureSize.height < s.width * s.height) {
mPictureSize = s;
}
}
Log.d("tag", "PictureSizes:" + sb + "-->" + p.getPictureSize().width + "*" + p.getPictureSize().height);
Log.d("tag", "mPictureSize=[" + mPictureSize.width + "*" + mPictureSize.height + "]");
p.setPictureSize(mPictureSize.width, mPictureSize.height);

            而你需要的可能是预览尺寸:
            //获取支持的预览尺寸
    List<Camera.Size> sizes3 = p.getSupportedPreviewSizes();
            ...
            接着for循环下,看看有没有你要的尺寸,例如1920*1080
              p.setPreviewSize(preview.width, preview.height);

这里在吐槽一下魅蓝,居然默认使用4208x3120拍照,为了刚好1300万像素,而这个