Android cihazlarda sensörün kamera boyutunu nasıl alacağını bilen var mı?Android cihazda Kamera Sensörü Boyutu nasıl alınır?
Teşekkür
Android cihazlarda sensörün kamera boyutunu nasıl alacağını bilen var mı?Android cihazda Kamera Sensörü Boyutu nasıl alınır?
Teşekkür
O belgelerine API düzeyinde 21. (https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#SENSOR_INFO_PHYSICAL_SIZE) itibariyle mümkündür:
public static final Anahtar SENSOR_INFO_PHYSICAL_SIZE
tam piksel dizinin fiziksel boyutları. [...]
Birimleri:
Milimetre
kod bu tür kullanır. Sadece bir kamera daha olabilir, dikkat:import android.hardware.camera2.CameraAccessException;
import android.hardware.camera2.CameraCharacteristics;
import android.hardware.camera2.CameraManager;
private SizeF getCameraResolution(int camNum)
{
SizeF size = new SizeF(0,0);
CameraManager manager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);
try {
String[] cameraIds = manager.getCameraIdList();
if (cameraIds.length > camNum) {
CameraCharacteristics character = manager.getCameraCharacteristics(cameraIds[camNum]);
size = character.get(CameraCharacteristics.SENSOR_INFO_PHYSICAL_SIZE);
}
}
catch (CameraAccessException e)
{
Log.e("YourLogString", e.getMessage(), e);
}
return size;
}
Not yakalanmış gereken CameraAccessException
o istisna.
Bildirime <uses-sdk android:minSdkVersion="21" />
eklemeyi unutmayın.
Fotoğraf makinesinin sensörünün genişliğini ve yüksekliğini Camera1 Api ile de kolayca alabilirsiniz. Yatay ve dikey görüş açıları ve odak uzaklığı elde edin, gerisi küçük trigonometri. görüntüsü, l
Camera.Parameters params = mCamera.getParameters();
focalLength = params.getFocalLength();
horizontalViewAngle = params.getHorizontalViewAngle();
verticalViewAngle = params.getVerticalViewAngle();
A = Açı = odak uzunluğu, h = sensör yükseklik/2 => tan (A/2) = odak uzaklığı 1.15 mm ve yatay ile olan cihaz için h/l
görünüşüdür 54.8 derecelik açısı:
Sensör genişliği = kahve renkli (54.8/2) * 2 * 1.15 = 1.19mm
Bu değer, i DomTomCat yayınlanan yöntemi kullanarak elde ne aynıdır.
Mükemmel bir çözüm, ancak, 21 API'dan önceki sürümlerde aynı değeri nasıl edinebilirim? – jucajl
21 ... – DomTomCat
'dan önceki versiyonlar için bir çözüm bulamadım, bu yöntem de yazıyor mu? http://stackoverflow.com/a/41032402/4548520 – user25