メインメニューを開く

CameraXでオートフォーカス

2023年11月9日 (木) 01:41時点におけるAdministrator (トーク | 投稿記録)による版 (ページの作成:「.NET6 Android(旧:Xamarin.Android)での話。 FocusMeteringActionに計測位置だけを指定すると以下の三点セットとなっている。 * オート…」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)

.NET6 Android(旧:Xamarin.Android)での話。

FocusMeteringActionに計測位置だけを指定すると以下の三点セットとなっている。

  • オートフォーカス(Auto Focus、AF)
  • オート露出(Auto Exposure、AE)
  • オートホワイトバランス(Auto White Balance、AWB)
// AndroidX.Camera.Core.ICamera camera

if (camera.CameraInfo.IsFocusMeteringSupported(focusAction) == false)
    return;

var focusPoint = meteringPointFactory.CreatePoint(x, y);

var focusAction = new FocusMeteringAction.Builder(focusPoint)
    .SetAutoCancelDuration(3, TimeUnit.Seconds)
    .Build();

camera.CameraControl.StartFocusAndMetering(focusAction);

白紙などを映しながらホワイトバランスを自動調整するにはAFとAEを切る。

var focusAction = new FocusMeteringAction.Builder(
    focusPoint, 
    FocusMeteringAction.FlagAwb);

ホワイトバランスを変えずにAEとAFだけにしたいは以下のようにする。

var focusAction = new FocusMeteringAction.Builder(
    focusPoint, 
    FocusMeteringAction.FlagAe | FocusMeteringAction.FlagAf);