¿Alguien puede saber cómo obtener el tamaño del sensor de la cámara en el dispositivo Android?¿Cómo obtener el tamaño del sensor de la cámara en un dispositivo Android?
Gracias
¿Alguien puede saber cómo obtener el tamaño del sensor de la cámara en el dispositivo Android?¿Cómo obtener el tamaño del sensor de la cámara en un dispositivo Android?
Gracias
Es posible que el nivel de API 21. De la documentación (https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#SENSOR_INFO_PHYSICAL_SIZE):
pública SENSOR_INFO_PHYSICAL_SIZE clave static final
Las dimensiones físicas de la matriz de píxeles completos. [...]
Unidades: Milímetros
utilizo este tipo de código. Ten cuidado, puede haber más de una sola cámara:
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;
}
Tenga en cuenta que Excepción CameraAccessException
necesita ser capturado.
No olvide agregar <uses-sdk android:minSdkVersion="21" />
a su manifiesto.
Es fácil obtener el ancho y la altura del sensor de la cámara con Camera1 Api también. Obtenga ángulo de visión horizontal y vertical y distancia focal, y el resto es poca trigonometría.
Camera.Parameters params = mCamera.getParameters();
focalLength = params.getFocalLength();
horizontalViewAngle = params.getHorizontalViewAngle();
verticalViewAngle = params.getVerticalViewAngle();
A = ángulo de vista, l = longitud, h = altura del sensor focal/2 => tan (A/2) = h/l
para mi dispositivo con longitud focal 1,15 mm y horizontal ángulo de visión 54,8 grados:
anchura sensor = tan (54.8/2) * 2 * 1,15 = 1,19 mm
Este valor es igual con lo que consigo usando el método DomTomCat publicada.
Solución perfecta, sin embargo, ¿cómo obtener el mismo valor en versiones anteriores a 21 API? – jucajl
No encontré una solución para las versiones anteriores a 21 ... – DomTomCat
¿Este método también se escribe? http://stackoverflow.com/a/41032402/4548520 – user25