簡體   English   中英

Android L-使用Camera2 API自動對焦拍攝閃光燈圖像

[英]Android L - Take flash image with autofocus using Camera2 api

遵循Android L預覽頁面上的camera2basic指南,我能夠捕獲普通圖像,即無需閃光燈或使用自動對焦機制(我依靠被動對焦)

但是,我想拍攝一張閃光燈。 文檔指出在拍攝Flash圖像之前,我應該調用android.control.aePrecaptureTrigger來確定正確的曝光量。

我的問題:

  • 如何調用AE Precapture觸發器,等待它完成,然后使用capture(CaptureRequest,CameraCaptureSession.CaptureListener,Handler)拍攝圖像?

我已經嘗試過的方法:

  • 用戶單擊“捕獲圖像”按鈕后,我開始預覽
  • 將CONTROL_AE_PRECAPTURE_TRIGGER設置為CONTROL_AE_PRECAPTURE_TRIGGER_START
  • 在CaptureListener的onCaptureCompleted方法中監視AE_STATE結果
  • 當AE_STATE收斂時,我設置AE鎖定並使用capture()方法拍攝圖像

但是,閃存圖像仍然曝光過度,有時,我會得到完整的垃圾圖像。

有誰能使這個工作?

一旦工作,自動對焦機制就可以類似的方式使用。

謝謝

感謝您試用新的camera2 API!

您不需要鎖定自動曝光; 一旦您看到AE_STATE為CONVERGED(或FLASH_REQUIRED),請提交靜止捕獲請求。

驗證事項:

  • 您的AE_MODE是預覽請求還是靜止捕獲請求的ON_AUTO_FLASH或ON_ALWAYS_FLASH? 否則,測光程序將無法控制閃光燈功率或無法正確閃光。 靜止捕捉和預覽模板可能只是將AE模式設置為ON,這意味着閃光燈不會在AE控制下閃光。
  • 您是否正在使用CAPTURE_INTENT_STILL_PICTURE拍攝靜止圖像? 否則,自動裝置將不會閃光。 這是為TEMPLATE_STILL_CAPTURE自動設置的。

如果您看到垃圾圖像,請隨時在我們的Android AOSP跟蹤器上提交錯誤: http : //b.android.com

詳細說明您的會話所具有的輸出集將特別有用,因為我們知道某些輸出Surface集存在一些當前的錯誤。

我不確定您是否回答。 我只是想出如下結果:首先,我為capturebuilder做過

captureBuilder.set(CaptureRequest.CONTROL_MODE,
                    CameraMetadata.CONTROL_MODE_AUTO);
captureBuilder.set(CaptureRequest.FLASH_MODE,
                    CameraMetadata.FLASH_MODE_TORCH);

設置這兩個參數是因為我認為閃光燈可以在自動模式下拍攝。 但是結果是捕獲時無法獲取閃光燈圖像。 現在,當我設置了Flash開/關的布爾值后,我便獲得了Flash圖片。

 if (isFlashOn)
                captureBuilder.set(CaptureRequest.FLASH_MODE,
                        CameraMetadata.FLASH_MODE_SINGLE);
            else
                captureBuilder.set(CaptureRequest.CONTROL_MODE,
                        CameraMetadata.CONTROL_MODE_AUTO);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM