MCPcopy Create free account
hub / github.com/MotrixLab/ADHMR / get_affine_transform_new

Function get_affine_transform_new

ADHMR/lib/utils/transforms.py:1372–1405  ·  view source on GitHub ↗
(center,
                             scale,
                             rot,
                             output_size,
                             shift=np.array([0, 0], dtype=np.float32),
                             inv=0)

Source from the content-addressed store, hash-verified

1370
1371
1372def get_affine_transform_new(center,
1373 scale,
1374 rot,
1375 output_size,
1376 shift=np.array([0, 0], dtype=np.float32),
1377 inv=0):
1378 if not isinstance(scale, np.ndarray) and not isinstance(scale, list):
1379 scale = np.array([scale, scale])
1380
1381 scale_tmp = scale
1382 src_w = scale_tmp[0]
1383 dst_w = output_size[0]
1384 dst_h = output_size[1]
1385
1386 rot_rad = np.pi * rot / 180
1387 src_dir = get_dir([0, src_w * -0.5], rot_rad)
1388 dst_dir = np.array([0, (dst_w - 1) * -0.5], np.float32)
1389
1390 src = np.zeros((3, 2), dtype=np.float32)
1391 dst = np.zeros((3, 2), dtype=np.float32)
1392 src[0, :] = center + scale_tmp * shift
1393 src[1, :] = center + src_dir + scale_tmp * shift
1394 dst[0, :] = [(dst_w - 1) * 0.5, (dst_h - 1) * 0.5]
1395 dst[1, :] = np.array([(dst_w - 1) * 0.5, (dst_h - 1) * 0.5]) + dst_dir
1396
1397 src[2:, :] = get_3rd_point(src[0, :], src[1, :])
1398 dst[2:, :] = get_3rd_point(dst[0, :], dst[1, :])
1399
1400 if inv:
1401 trans = cv2.getAffineTransform(np.float32(dst), np.float32(src))
1402 else:
1403 trans = cv2.getAffineTransform(np.float32(src), np.float32(dst))
1404
1405 return trans
1406
1407
1408def affine_transform(pt, t):

Callers 1

transform_preds_newFunction · 0.85

Calls 2

get_dirFunction · 0.85
get_3rd_pointFunction · 0.85

Tested by

no test coverage detected