Плохое качество изображения при использовании собственной активности камеры - PullRequest
1 голос
/ 02 августа 2011

Мы используем скорость 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 с увеличением.Как вы можете видеть, левая фотография, сделанная с помощью собственного приложения, выглядит «чище», чем правая, сделанная с помощью нашего собственного приложения.

enter image description here

Есть идеи?

1 Ответ

0 голосов
/ 02 августа 2011

Вы не знаете, что делает нативное приложение с точки зрения настройки камеры перед съемкой изображения и последующей обработки после съемки.

На камере доступно множество настроек, которые хорошо документированы и должны быть изучены.

Вам также следует помнить, что при использовании одного и того же метода, но с малейшим изменением света и фокуса, существуют совершенно разные результаты.

Попробуйте заглянуть в настройки автофокуса и, возможно, что-нибудь сделать с обратным вызовом автофокуса.

При сравнении двух методов убедитесь, что ваша камера сбалансирована на чем-то, а не на портативном устройстве, и убедитесь, что расстояние и уровни освещенности идентичны.

...