summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShuzhen Wang <shuzhenwang@google.com>2023-10-14 00:11:35 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2023-10-14 00:11:35 +0000
commitdd32a21395326c229829ca27a007bf32d9cccc70 (patch)
treeb4d3188aba1a8a56ee5faf0344edbbd2b28054bc
parent916f9acfb42c0b7f0b9df1a78963ad50bce53f00 (diff)
parent475ccaf5a3748ba1878e2b9b7cc854471e8a8cc5 (diff)
downloadcts-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.java21
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);