NeuralBody / lib /visualizers /if_nerf_test.py
pengsida
initial commit
1ba539f
import matplotlib.pyplot as plt
import numpy as np
from lib.config import cfg
import os
import cv2
class Visualizer:
def visualize(self, output, batch):
rgb_pred = output['rgb_map'][0].detach().cpu().numpy()
mask_at_box = batch['mask_at_box'][0].detach().cpu().numpy()
H, W = int(cfg.H * cfg.ratio), int(cfg.W * cfg.ratio)
mask_at_box = mask_at_box.reshape(H, W)
img_pred = np.zeros((H, W, 3))
img_pred[mask_at_box] = rgb_pred
result_dir = os.path.join('data/result/if-nerf', cfg.exp_name)
if cfg.human in [302, 313, 315]:
i = batch['i'].item() + 1
else:
i = batch['i'].item()
i = i + cfg.begin_i
cam_ind = batch['cam_ind'].item()
frame_dir = os.path.join(result_dir, 'frame_{}'.format(i))
pred_img_path = os.path.join(frame_dir,
'pred_{}.jpg'.format(cam_ind + 1))
os.system('mkdir -p {}'.format(os.path.dirname(pred_img_path)))
img_pred = (img_pred * 255)[..., [2, 1, 0]]
cv2.imwrite(pred_img_path, img_pred)
# _, (ax1, ax2) = plt.subplots(1, 2)
# ax1.imshow(img_pred)
# ax2.imshow(img_gt)
# plt.show()