diff options
author | Shuzhen Wang <shuzhenwang@google.com> | 2023-10-14 00:11:35 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2023-10-14 00:11:35 +0000 |
commit | dd32a21395326c229829ca27a007bf32d9cccc70 (patch) | |
tree | b4d3188aba1a8a56ee5faf0344edbbd2b28054bc | |
parent | 916f9acfb42c0b7f0b9df1a78963ad50bce53f00 (diff) | |
parent | 475ccaf5a3748ba1878e2b9b7cc854471e8a8cc5 (diff) | |
download | cts-dd32a21395326c229829ca27a007bf32d9cccc70.tar.gz |
Merge "Camera: Consider black calibration pixels when calculating FOV" into android14-tests-dev am: 2350f79d55 am: e5f1d9a925 am: 475ccaf5a3
Original change: https://android-review.googlesource.com/c/platform/cts/+/2787576
Change-Id: Iba3c6b3ffe787eb7b2df95a99389163655829603
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); |