1

我们正在使用 LG Optimus 速度,并试图通过我们自己的活动从相机获取图像。我们使用的代码是:

GetImage(new PictureCallback(){
  @Override
  public void onPictureTaken(byte[] data, Camera camera) {
    camera.startPreview();
    bmp = BitmapConversion.convertBmp(data));
  }
});

...

public static void GetImage(final PictureCallback jpgCallback) {
    GetCamera().autoFocus(new AutoFocusCallback(){

        @Override
        public void onAutoFocus(boolean success, Camera camera) {
            if(success)
                GetCamera().takePicture(null, null, jpgCallback);
            else
                GetImage(jpgCallback);
        }       
    });         
}

这些图像的质量比使用原生 android 相机应用程序获得的图像要差得多。这是 2 张示例图片,均以 640x480 的分辨率拍摄并放大。如您所见,使用本机应用程序拍摄的左图看起来比使用我们自己的应用程序拍摄的右图“更干净”。

在此处输入图像描述

有任何想法吗?

4

1 回答 1

0

在拍摄图像之前配置相机和拍摄图像之后的后处理方面,您不知道原生应用程序在做什么。

相机上有许多可用的设置,这些设置有据可查,应该进行调查。

您还应该意识到,使用相同的方法会产生截然不同的结果,但光线和焦点的变化很小。

尝试查看自动对焦设置,也许对自动对焦回调做一些事情。

在比较这两种方法时,请确保您的相机在某物而非手持设备上保持平衡,并确保距离和光照水平相同。

于 2011-08-02T17:19:33.190 回答