camera2: проблемы с фокусной областью и фокусным расстоянием - PullRequest
0 голосов
/ 09 декабря 2018

Я много раз пытался установить дистанционный фокус на API Camera2 или установить автофокус только на определенную область, инициализированную в начале упражнения.

Но все равно не работает ...

Не могли бы вы помочь мне, пожалуйста?:)

вот моя конфигурация:

        captureRequestBuilder.set(CaptureRequest.CONTROL_MODE, CaptureRequest.CONTROL_MODE_AUTO);

        captureRequestBuilder.set(CaptureRequest.CONTROL_AF_TRIGGER,
                CaptureRequest.CONTROL_AF_TRIGGER_START);

        MeteringRectangle[] focusArea = new MeteringRectangle[1];
        focusArea[0] = new MeteringRectangle(new Rect(rectangle.getLeft(),rectangle.getTop(),
                rectangle.getRight(), rectangle.getBottom()), MeteringRectangle.METERING_WEIGHT_MAX);
        captureRequestBuilder.set(CaptureRequest.CONTROL_AF_REGIONS, focusArea);  
      //captureRequestBuilder.set(CaptureRequest.LENS_FOCUS_DISTANCE,10000000000.0f);

1 Ответ

0 голосов
/ 11 декабря 2018

Вы не включаете код, в который вызываете CameraCaptureSession.capture или setRepeatingRequest.Но вы не должны устанавливать TRIGGER_START в повторяющемся запросе, так как это перезапустит фокус на каждом кадре.Используйте его только в одном вызове capture ().

Кроме того, вы имели в виду, что вы меняете CONTROL_AF_MODE, а не CONTROL_MODE?Последнее не влияет на тип используемого автофокуса, и я предполагаю, что вы хотите сделать AF_MODE_AUTO для операции касания к фокусе.

Если вы хотите ручную фокусировку, вам нужно установить AF_MODE_OFFотключить автофокус.

...