diff options
author | Shuzhen Wang <shuzhenwang@google.com> | 2023-10-13 23:05:29 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2023-10-13 23:05:29 +0000 |
commit | e5f1d9a9252422890ec15c562acc5a4b9d7bdea4 (patch) | |
tree | 0aa7ee88e1ade104dfff57c8138fb4f9b8ee0505 | |
parent | 96ebfade5c8adc05cd9f99290cbe4600671507ee (diff) | |
parent | 2350f79d55c7574103420ad1c6c6e297d015b870 (diff) | |
download | cts-e5f1d9a9252422890ec15c562acc5a4b9d7bdea4.tar.gz |
Merge "Camera: Consider black calibration pixels when calculating FOV" into android14-tests-dev am: 2350f79d55
Original change: https://android-review.googlesource.com/c/platform/cts/+/2787576
Change-Id: Ide3b56fc335a22c804248da2e8056ace6b2f8465
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r-- | tests/camera/src/android/hardware/camera2/cts/LogicalCameraDeviceTest.java | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/tests/camera/src/android/hardware/camera2/cts/LogicalCameraDeviceTest.java b/tests/camera/src/android/hardware/camera2/cts/LogicalCameraDeviceTest.java index e37e3117521..a9e0a58fa64 100644 --- a/tests/camera/src/android/hardware/camera2/cts/LogicalCameraDeviceTest.java +++ b/tests/camera/src/android/hardware/camera2/cts/LogicalCameraDeviceTest.java @@ -1035,9 +1035,16 @@ public final class LogicalCameraDeviceTest extends Camera2SurfaceViewTestCase { Rect activeArraySize = mStaticInfo.getActiveArraySizeChecked(); SizeF sensorSize = mStaticInfo.getValueFromKeyNonNull( CameraCharacteristics.SENSOR_INFO_PHYSICAL_SIZE); + Size logicalPixelArraySize = mStaticInfo.getValueFromKeyNonNull( + CameraCharacteristics.SENSOR_INFO_PIXEL_ARRAY_SIZE); + Rect logicalPreCorrActiveArraySize = mStaticInfo.getValueFromKeyNonNull( + CameraCharacteristics.SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE); + Float fovTransferRatio = logicalPreCorrActiveArraySize.width() * 1f / + logicalPixelArraySize.getWidth(); + Float logicalSensorWidth = sensorSize.getWidth() * fovTransferRatio; // Assume subject distance >> focal length, and subject distance >> camera baseline. - double fov = 2 * Math.toDegrees(Math.atan2(sensorSize.getWidth() * cropRegion.width() / + double fov = 2 * Math.toDegrees(Math.atan2(logicalSensorWidth * cropRegion.width() / (2 * zoomRatio * activeArraySize.width()), focalLength)); Map<String, CaptureResult> physicalResultsDual = @@ -1052,15 +1059,23 @@ public final class LogicalCameraDeviceTest extends Camera2SurfaceViewTestCase { SizeF physicalSensorSize = physicalStaticInfo.getValueFromKeyNonNull( CameraCharacteristics.SENSOR_INFO_PHYSICAL_SIZE); + Size physicalPixelArraySize = physicalStaticInfo.getValueFromKeyNonNull( + CameraCharacteristics.SENSOR_INFO_PIXEL_ARRAY_SIZE); + Rect physicalPreCorrActiveArraySize = physicalStaticInfo.getValueFromKeyNonNull( + CameraCharacteristics.SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE); + Float transferRatio = physicalPreCorrActiveArraySize.width() * 1f / + physicalPixelArraySize.getWidth(); + Float physicalSensorWidth = physicalSensorSize.getWidth() * transferRatio; + // Physical result metadata's ZOOM_RATIO is 1.0f. assertTrue("Physical result metadata ZOOM_RATIO should be 1.0f, but is " + physicalZoomRatio, Math.abs(physicalZoomRatio - 1.0f) < ZOOM_RATIO_THRESHOLD); double physicalFov = 2 * Math.toDegrees(Math.atan2( - physicalSensorSize.getWidth() * physicalCropRegion.width() / + physicalSensorWidth * physicalCropRegion.width() / (2 * physicalZoomRatio * physicalActiveArraySize.width()), physicalFocalLength)); - double maxPhysicalFov = 2 * Math.toDegrees(Math.atan2(physicalSensorSize.getWidth() / 2, + double maxPhysicalFov = 2 * Math.toDegrees(Math.atan2(physicalSensorWidth / 2, physicalFocalLength)); double expectedPhysicalFov = Math.min(maxPhysicalFov, fov); |