android 测光模式,Android Camera1中的对焦与测光
Android Camera1開發系列連載:
Android Camera1詳解
Android Camera1顯示預覽的四種方式
對焦模式
在使用特定的對焦模式的時候,必須確保相機支持該模式,相機支持的對焦模式可以通過Parameters#getFocusMode接口來獲取:
常用的對焦模式為:
//?連續自動對焦caf,預覽場景變化時會自動去對焦Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEOCamera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE//?單次自動對焦af,下發一次請求則對焦一次Camera.Parameters.FOCUS_MODE_AUTO
對焦區域
當對焦模式為caf或者af時,可以指定對焦區域,如果未設置,則驅動程序將會自己選擇焦點目標,看一張來自官網描述對焦坐標系的圖:
如圖所示,無論屏幕是橫屏還是豎屏,預覽視圖的中心點坐標都是(0,0),左上角為(-1000,-1000),右下角為(1000,1000)
在計算屏幕坐標系中的UI點擊坐標(x,y)到sensor對焦坐標系對焦區域focusRect的時候,還需要考慮預覽的旋轉角和前置鏡像,計算過程大致如下:
設置對焦區域的時候,需要先查詢一下可設置對焦區域的最大個數:
//?返回0的時候表示不支持設置對焦區域,通常都是返回1// 當返回個數大于1的時候,可以設置對焦區域列表,//?每個對焦區域可以設置權重,權重范圍為1~1000Parameters#getMaxNumFocusAreas
常見對焦模式的切換場景
單拍時,先對焦再拍照,拍照結束后切換到caf
連拍時,先對焦再拍照,連拍結束后切換到caf
觸屏對焦TouchAF后,可以進行鎖焦,預覽場景變化時再轉為caf;或者設置超時機制,3-5s后從af轉為caf。不同手機的系統相機中選擇的策略不同,主流策略大概就這兩種
af切換到caf的時候,需要切換對焦模式和callback,從af切換到caf:
parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE);camera.setAutoFocusMoveCallback(cafCallback);
從caf切換到af:
parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);camera.autoFocus(afCallback);
對焦畫框邏輯
autoFocus流程:五種狀態,三類UI
//?三類UI:正在對焦畫白框,對焦成功畫綠/黃框,失敗畫紅框// 五種狀態IDEL // focus is not activeFOCUSING?// focus is in progressFOCUSING_SNAP_ON_FINISH?//?will?take?picture?after?focus?finishSUCCESS??//?focus?finished?and?successFAIL?????//?focus?finished and fails
autoFocusMoving流程:三種狀態,兩類UI
//?兩類UI:moving的時候畫白框,對焦成功畫綠/黃框,超時直接清除UI// 三種狀態MOVING_START?//?caf startMOVING_END? // caf endTIMEOUT?????// time out
上面的顯示策略對對焦狀態的展示是很明晰的,不過現在的主流相機app都不會搞這么復雜,比如我手頭的iPhone和小米手機的系統相機就沒這么多顏色切換
測光
測光的坐標系和使用流程與對焦是一樣的,就不具體描述了。
在TouchAF的時候,測光區域可以和對焦區域一樣,也可以區域中心點相同,而框的大小不同,或者對焦區域和測光區域設置為不同區域,這種焦側分離的功能一般都是在相機app中的專業模式中提供。考慮用戶體驗選擇不同的策略即可
常見測光方式
注:Redmi k30 5G版?系統相機專業模式
點測光:對畫面中較小的區域(占整體面積的1.5% - 3%)進行測光,不考慮周邊環境亮度,測光點所偵測的畫面非常小,結果比較精確。這種測光模式適合用于場景光線反差大,或者主體在畫面中所占比例較小的時候使用;
中央重點測光:測光重點放在畫面的中心約75%的區域。在光線色差反差較大的情況下,這種測光模式比矩陣測光更容易控制效果;
平均測光:又叫矩陣測光,對畫面中整體區域的光線強弱和色彩等情況進行偵測分析后,得到一個平均比較科學的測光值。這種測光模式適合在場景中光線、色彩等反差 不大的情況下使用;
以下面這張照片為例,在逆光場景下展示花瓣的紋路,為了讓花瓣顯得通透一點,可以采用點測光模式進行拍攝
測光方式的選擇依賴于芯片提供支持或者相機Turing實現,在標準api中是沒有直接提供相關接口的
該功能多見于系統相機專業模式,一般在第三方的相機類app啟動相機預覽后,都是默認的中央重點測光。第三方相機要實現測光方式的選擇,除了依賴于廠商提供支持外,其實也可以自己研究一套AE權重表然后利用OpenGL來實現
總結
以上是生活随笔為你收集整理的android 测光模式,Android Camera1中的对焦与测光的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 车上挂什么挂件最好适合挂在车上保平安的物
- 下一篇: 连云港市赣榆区九万的车购置税多少