summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShuzhen Wang <shuzhenwang@google.com>2023-10-13 23:05:29 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2023-10-13 23:05:29 +0000
commite5f1d9a9252422890ec15c562acc5a4b9d7bdea4 (patch)
tree0aa7ee88e1ade104dfff57c8138fb4f9b8ee0505
parent96ebfade5c8adc05cd9f99290cbe4600671507ee (diff)
parent2350f79d55c7574103420ad1c6c6e297d015b870 (diff)
downloadcts-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.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);