transform_img_M

pull/1413/head
George Hotz 5 years ago
parent 88b4a727c2
commit aeb0a4af88
  1. 59
      common/transformations/camera.py

@ -147,29 +147,13 @@ def pretransform_from_calib(calib):
camera_frame_from_calib_frame = get_camera_frame_from_calib_frame(camera_frame_from_road_frame) camera_frame_from_calib_frame = get_camera_frame_from_calib_frame(camera_frame_from_road_frame)
return np.linalg.inv(camera_frame_from_calib_frame) return np.linalg.inv(camera_frame_from_calib_frame)
def transform_img_M(size,
def transform_img(base_img, augment_trans=np.array([0,0,0]),
augment_trans=np.array([0,0,0]), augment_eulers=np.array([0,0,0]),
augment_eulers=np.array([0,0,0]), from_intr=eon_intrinsics,
from_intr=eon_intrinsics, to_intr=eon_intrinsics,
to_intr=eon_intrinsics, pretransform=None):
output_size=None,
pretransform=None,
top_hacks=False,
yuv=False,
alpha=1.0,
beta=0,
blur=0):
import cv2 # pylint: disable=import-error import cv2 # pylint: disable=import-error
cv2.setNumThreads(1)
if yuv:
base_img = cv2.cvtColor(base_img, cv2.COLOR_YUV2RGB_I420)
size = base_img.shape[:2]
if not output_size:
output_size = size[::-1]
cy = from_intr[1,2] cy = from_intr[1,2]
def get_M(h=1.22): def get_M(h=1.22):
quadrangle = np.array([[0, cy + 20], quadrangle = np.array([[0, cy + 20],
@ -192,14 +176,31 @@ def transform_img(base_img,
M = get_M() M = get_M()
if pretransform is not None: if pretransform is not None:
M = M.dot(pretransform) M = M.dot(pretransform)
augmented_rgb = cv2.warpPerspective(base_img, M, output_size, borderMode=cv2.BORDER_REPLICATE) return M
if top_hacks: def transform_img(base_img,
cyy = int(math.ceil(to_intr[1,2])) augment_trans=np.array([0,0,0]),
M = get_M(1000) augment_eulers=np.array([0,0,0]),
if pretransform is not None: from_intr=eon_intrinsics,
M = M.dot(pretransform) to_intr=eon_intrinsics,
augmented_rgb[:cyy] = cv2.warpPerspective(base_img, M, (output_size[0], cyy), borderMode=cv2.BORDER_REPLICATE) output_size=None,
pretransform=None,
yuv=False,
alpha=1.0,
beta=0,
blur=0):
import cv2 # pylint: disable=import-error
cv2.setNumThreads(1)
if yuv:
base_img = cv2.cvtColor(base_img, cv2.COLOR_YUV2RGB_I420)
size = base_img.shape[:2]
if not output_size:
output_size = size[::-1]
M = transform_img_M(size, augment_trans, augment_eulers, from_intr, to_intr, pretransform)
augmented_rgb = cv2.warpPerspective(base_img, M, output_size, borderMode=cv2.BORDER_REPLICATE)
# brightness and contrast augment # brightness and contrast augment
augmented_rgb = np.clip((float(alpha)*augmented_rgb + beta), 0, 255).astype(np.uint8) augmented_rgb = np.clip((float(alpha)*augmented_rgb + beta), 0, 255).astype(np.uint8)

Loading…
Cancel
Save