Camera中對焦模式總結


1,相機對焦模式有以下幾種:

auto  //自動
infinity //無窮遠
macro //微距
continuous-picture //持續對焦
fixed //固定焦距
 

2,常見對焦模式切換場景

2.1,單拍時,會先對焦再拍照,再切換到CAF;

        有一個從 af 切換到 caf 過程

2.2,連拍時,會先對焦再拍照,連拍完成,再切換到 CAF;

        同樣一個從 af 切換到 caf 過程

2.3,觸屏對焦,過一段時間(2s-3s)會自動切換到CAF; (對焦鎖定2s-3s)

        也是從af 切換到 caf 過程
 
這三個場景都涉及到從 af 切換到 caf 過程,這個切換過程有兩個地方需要注意:
一是focus-mode 要切換過來,並且設置到底層
mParameters.setFocusMode("auto");
mParameters.setFocusMode("continuous-picture");
 
二是相應的回調也要切換過來,設置到底層
mActivity.getCameraDevices().autoFocus(mAutoFocusCallback);
mActivity.getCameraDevices().setAutoFocusCallBack(mAutoFocusMoveCallback);
這兩個步驟缺一不可。
 

3,對焦畫框邏輯

3.1, autoFocus 流程中會有三類圖片,五種狀態

三類圖片很好理解,正在對焦畫白框,對焦成功畫綠框,對焦失敗畫紅框
五種狀態分別為:
    public static final int STATE_IDLE = 0; // Focus is not active.
    public static final int STATE_FOCUSING = 1; // Focus is in progress.
    // Focus is in progress and the camera should take a picture after focus finishes.
    public static final int STATE_FOCUSING_SNAP_ON_FINISH = 2;
    public static final int STATE_SUCCESS = 3; // Focus finishes and succeeds.
    public static final int STATE_FAIL = 4; // Focus finishes and fails.
 

3.2, autoFocusMoving 流程中只有兩類圖片,三種狀態

autoFocusMoving 的回調中有一個參數即 moving 判斷當前是否正在運動,若運動則該參數值為 true,否則為 false。正常流程即判斷到在運動(切換場景)即開始對焦,畫白框;穩定后(對焦成功),畫綠框;還有一種狀態即為對焦超時,此時會直接清除白框。
log會有類似這種顯示:
     onAutoFocusMoving moving = true
     onAutoFocusMoving moving = false
     onAutoFocusMoving timeout
 

3.3, 對焦框 與 人臉框 是互斥的,會在代碼中看到類似這種邏輯

        // Ignore if the camera has detected some faces.
        if (mFaceView != null && mFaceView.faceExists()) {
            mFocusIndicatorRotateLayout.clear();
          }
 

4,相機專業模式中是如何做到這幾種對焦邏輯切換的

auto  //自動
infinity //無窮遠
macro //微距
continuous-picture //持續對焦
手機所搭載的攝像頭一般都是定焦的,只是各個焦段的特性不一樣,即只有一個焦平面是可以合焦的。因此在無窮遠和微距模式下都是通過事先寫在驅動中的一些參數去設置的。auto和continuous-picture 是攝像頭本身就支持的對焦模式,可以把 continuous-picture理解為程序在檢測到場景變化時自動autoFocus。
 
轉自:http://blog.csdn.net/fulinwsuafcie/article/details/49558001


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM