2017-02-07 39 views
2

我想同時使用外部魚眼鏡頭設置我的自定義相機對焦距離到無限遠,這是我迄今所做的:如何在camera2 api,android中設置無限遠焦點?

builder.set(CaptureRequest.CONTROL_AF_MODE, CaptureRequest.CONTROL_AF_MODE_OFF); 
builder.set(CaptureRequest.LENS_FOCUS_DISTANCE, 0.0f); 

但結果卻是如此的模糊。

我使用三星S6和Nexus 5 外部鏡頭的廣角爲170度。

任何人都可以幫忙嗎?

+0

你試過修改FOCUS_RANGE嗎? – CptEric

+0

不,我沒有。我會嘗試 – imudin07

回答

3

如果你只是在談論使用內置攝像頭的鏡頭來實現魚眼,那麼你應該使用最低值是:

float minFocalDist = cameraCharacteristics.get(CameraCharacteristics.LENS_INFO_MINIMUM_FOCUS_DISTANCE); 

如果您使用的是外部的鏡頭,那麼我相信,正確的做法實際上是在相機上使用自動對焦,因爲這應該集中在魚眼鏡頭的焦距上......我想。所以外部鏡頭正在照顧魚眼,內部正在照顧自動對焦。但是,如果這不起作用,那麼請在將焦距設置爲超焦距時查看獲得的結果。這個距離可能不是最佳的,但它應該在大多數情況下工作...

float hyperFocalDist = cameraCharacteristics.get(CameraCharacteristics.LENS_INFO_HYPERFOCAL_DISTANCE); 
+0

我剛試過hyberfocal距離。它返回'0.2',其結果是爲'0.0' – imudin07

+0

這似乎是一個對齊問題則幾乎相同。超焦距應該幾乎總是有效的。可能是外部鏡頭的軸與攝像機軸不完全對齊。這需要非常精確,如果你只是注視連接,你可能會得到不好的結果。是否有專用適配器,您必須將鏡頭連接到手機? –

+0

這是一個手機外殼和鏡頭安裝在合適的位置 – imudin07