Я хочу использовать API CameraX на Pixel8a, чтобы делать изображения того же качества, что и стандартное приложение камеJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Я хочу использовать API CameraX на Pixel8a, чтобы делать изображения того же качества, что и стандартное приложение каме

Сообщение Anonymous »

Я создаю приложение, которое использует API CameraX для съемки фотографий.
При сравнении изображений, сделанных с помощью приложения, созданного мной на Pixel8a, и стандартного приложения камеры, объект изображения Снимок, сделанный с помощью созданного мною приложения, при увеличении выглядит немного размытым.
Условия съемки те же, я пробовал с максимальным разрешением.
Требуются ли какие-либо другие настройки для получения изображений того же качества, что и стандартная камера? app?
Ниже приведен мой код при связыванииToLifecycle.

Код: Выделить всё

   public void bindPreview(CameraUiControls controls,
@NonNull ProcessCameraProvider cameraProvider) {

try {
var size = getMaxResolution(getActivity().getApplicationContext());
var screenAspectRatio = aspectRatio(size.getHeight(), size.getWidth());

var rotation = 0;
var disp = controls.getPreviewView().getDisplay();
if (Objects.nonNull(disp)) {
rotation = disp.getRotation();
}
controls.getPreviewView().setScaleType(PreviewView.ScaleType.FIT_CENTER);

this.preview = new Preview.Builder()
.setTargetAspectRatio(screenAspectRatio)
.setTargetRotation(rotation)
.build();

this.captureSize = new Size(size.getHeight(), size.getWidth());

// Set up the capture use case to allow users to take photos
imageCapture = new ImageCapture.Builder()
.setCaptureMode(ImageCapture.CAPTURE_MODE_MAXIMIZE_QUALITY)
.setTargetRotation(rotation)
.setTargetResolution(captureSize)
.build();

CameraSelector cameraSelector = new CameraSelector.Builder()
.requireLensFacing(CameraSelector.LENS_FACING_BACK)
.build();

imageAnalysis = new ImageAnalysis.Builder()
.setTargetResolution(captureSize)
.setBackpressureStrategy(ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST)
.build();

imageAnalysis.setAnalyzer(ContextCompat.getMainExecutor(getContext()),
image -> {

createClip(image);

image.close();
});

var aspectRatio = new Rational(size.getHeight(),
size.getWidth());

var viewPort = new ViewPort.Builder(
aspectRatio,
this.preview.getTargetRotation()
).build();

var useCaseGroup = new UseCaseGroup.Builder()
.addUseCase(this.preview)
.addUseCase(this.imageCapture)
.addUseCase(imageAnalysis)
.build();

this.cameraProvider.unbindAll();

this.camera = cameraProvider.bindToLifecycle(this,
cameraSelector,
useCaseGroup);

preview.setSurfaceProvider(controls.getPreviewView().getSurfaceProvider());

} catch (Exception e) {
Timber.e(e);
}
}
Используемая версия
CameraX API: 1.2.1
Pixel8a ОС: 14
Спасибо
Я попробовал обновить версию CameraXAPI до 1.4.0, но результат тот же.

Подробнее здесь: https://stackoverflow.com/questions/793 ... y-as-the-s
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»