ITS: image_fov_utils.py allow props or metadata for k matrix
Bug: 345393054
Testing: Pixel 8 rear camera
Change-Id: I8d20cec77412c3fb1d1dd1fa5b7a95cb2ffd371b
diff --git a/apps/CameraITS/utils/image_fov_utils.py b/apps/CameraITS/utils/image_fov_utils.py
index 7d44a2f..e3aaae3 100644
--- a/apps/CameraITS/utils/image_fov_utils.py
+++ b/apps/CameraITS/utils/image_fov_utils.py
@@ -18,6 +18,8 @@
import math
import cv2
+import numpy as np
+
import camera_properties_utils
import capture_request_utils
import image_processing_utils
@@ -215,13 +217,13 @@
# Resize back up to full scale.
img = cv2.resize(img, (0, 0), fx=2.0, fy=2.0)
+ fd = float(cap['metadata']['android.lens.focalLength'])
+ k = camera_properties_utils.get_intrinsic_calibration(
+ props, cap['metadata'], True, fd
+ )
if (camera_properties_utils.distortion_correction(props) and
- cap['metadata']['android.lens.intrinsicCalibration']):
+ isinstance(k, np.ndarray)):
logging.debug('Applying intrinsic calibration and distortion params')
- fd = float(cap['metadata']['android.lens.focalLength'])
- k = camera_properties_utils.get_intrinsic_calibration(
- props, cap['metadata'], True, fd
- )
opencv_dist = camera_properties_utils.get_distortion_matrix(props)
k_new = cv2.getOptimalNewCameraMatrix(
k, opencv_dist, (img.shape[1], img.shape[0]), 0)[0]