2012-03-30 98 views
0

當用戶點擊捕獲照片按鈕時,我嘗試了兩種不同的方法從Android相機硬件捕獲圖像。一個調用autoFocus,並在autoFocusCallback完成併成功響應後,捕獲圖像。二,捕捉圖像而不調用autoFocus。在這兩種情況下,我都注意到傳遞給onPictureTaken方法的結果字節數組的長度不同。在autoFocus成功完成並調用autoFocusCallback之後,通常至少比autoFocus調用完全忽略時大50K字節。爲什麼?有人可以投射一些光線嗎?我不明白的是,當autoFocus成功完成時,圖片是否應該具有良好的質量?典型的質量是代表每個像素的RGB通道的每個字節中的位的值。不管在RGB字節中加載了什麼值,像素的總數以及由此表示RGB通道的總字節數應該相同。但顯然似乎在執行autoFocus之後,包含更多字節的數據以獲得更清晰的圖像,而不是普通的清晰度圖像。Android Camera相機在自動對焦後拍攝的照片比沒有自動對焦更大

已經研究了一個多月了。真的很感激一個快速的答案。

回答

0

所有圖像/視頻採集驅動程序都使用YUV格式進行採集。在大多數情況下,格式爲YUV420或YUV422。請參閱此鏈接瞭解YUV格式的更多信息http://www.fourcc.org/yuv.php

正如您所提到的,自動對焦調用後拍攝的照片更清晰(邊緣更清晰,對比度更好),並且在未使用自動對焦拍攝的圖像中缺少相同的陰影。

如您所知,Jpeg圖像壓縮用於壓縮圖像的數據,壓縮基於宏塊(圖像中的方塊)。具有更銳利邊緣和更多細節的圖像需要比具有模糊的圖像更多的係數編碼,因爲大多數相鄰像素看起來像已被平均化。這是爲什麼自動聚焦圖像綁定更多的數據,因爲它有更多的細節。