có ai biết cách nhận kích thước cảm biến của máy ảnh trong thiết bị Android không?Cách nhận Kích thước cảm biến máy ảnh trong thiết bị Android?
Cảm ơn
có ai biết cách nhận kích thước cảm biến của máy ảnh trong thiết bị Android không?Cách nhận Kích thước cảm biến máy ảnh trong thiết bị Android?
Cảm ơn
Có thể như cấp API 21. Từ các tài liệu (https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#SENSOR_INFO_PHYSICAL_SIZE):
public static thức SENSOR_INFO_PHYSICAL_SIZE chính
Các kích thước vật lý của mảng đầy đủ pixel. [...]
lô: Millimet
tôi sử dụng loại mã này. Cẩn thận, có thể có nhiều hơn một camera:
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;
}
Lưu ý rằng ngoại lệ CameraAccessException
cần phải bị bắt.
Đừng quên thêm <uses-sdk android:minSdkVersion="21" />
vào tệp kê khai của bạn.
Thật dễ dàng để có được chiều rộng và chiều cao của cảm biến của máy ảnh với Camera1 Api quá. Nhận góc nhìn ngang và thẳng đứng và tiêu cự và phần còn lại là ít lượng giác.
Camera.Parameters params = mCamera.getParameters();
focalLength = params.getFocalLength();
horizontalViewAngle = params.getHorizontalViewAngle();
verticalViewAngle = params.getVerticalViewAngle();
A = Góc nhìn, l = chiều dài tiêu cự, h = chiều cao cảm biến/2 => tan (A/2) = h/l
Đối với điện thoại của tôi với tiêu cự 1,15 mm và chiều ngang góc nhìn 54,8 độ:
Sensor width = tan (54,8/2) * 2 * 1,15 = 1.19mm
giá trị này là tương tự với những gì tôi được sử dụng phương pháp DomTomCat đăng. Tuy nhiên,
Giải pháp hoàn hảo, cách nhận được cùng một giá trị trong các phiên bản trước 21 API? – jucajl
Tôi không tìm thấy giải pháp cho các phiên bản trước 21 ... – DomTomCat
là phương pháp này cũng được viết không? http://stackoverflow.com/a/41032402/4548520 – user25