MCPcopy Create free account
hub / github.com/drinkingcoder/NeuralMarker / render

Function render

harsh_lighting_utils.py:30–69  ·  view source on GitHub ↗
(decompose_result, replace_result, poster_brightness: float, data_root: str, mask = None, save=False)

Source from the content-addressed store, hash-verified

28render image with rgb, illumination and reflectance
29'''
30def render(decompose_result, replace_result, poster_brightness: float, data_root: str, mask = None, save=False):
31 replace = replace_result.astype(np.float64)
32 illumination = decompose_result['pred_S'][:,:,::-1].astype(np.float64)
33 reflectance = decompose_result['pred_R'][:,:,::-1].astype(np.float64)
34 rgb = decompose_result['rgb'][:,:,::-1].astype(np.float64)
35 if DEBUG:
36 render = cv2.multiply(illumination, reflectance)
37 cv2.imshow("srgb", rgb_to_srgb(rgb))
38 cv2.imshow("s", rgb_to_srgb(illumination))
39 cv2.imshow("r", rgb_to_srgb(reflectance))
40 cv2.imshow("render", render)
41 cv2.imshow("srender", rgb_to_srgb(render))
42 cv2.waitKey()
43 cv2.destroyAllWindows()
44 if save:
45 ofs = cv2.FileStorage(os.path.join(data_root, "split.yml"), cv2.FILE_STORAGE_WRITE)
46 ofs.write("illumination", illumination)
47 ofs.write("reflectance", reflectance)
48 ofs.write("rgb", rgb)
49
50 reflectance = reflectance * 255
51 rgb = rgb * 255
52 if mask is None:
53 assert os.path.exists(os.path.join(data_root, "mask.jpg"))
54 mask = cv2.imread(os.path.join(data_root, "mask.jpg"), cv2.IMREAD_UNCHANGED)
55 mask = mask / 255.0
56
57 r_sum = replace.sum(axis=-1)
58 ref_sum = reflectance.sum(axis=-1)
59 tot = np.count_nonzero(r_sum)
60 ri = r_sum.sum()/(3.0*tot)
61 refi = ref_sum.sum()/(3.0*tot)
62 refi = refi * poster_brightness
63
64 if len(mask.shape) == 2:
65 mask = mask[:,:,np.newaxis]
66 dst = mask * rgb + (1.0 - mask) * replace * illumination * refi / ri
67 sdst = dst.astype(np.uint8)
68
69 return sdst
70
71
72'''

Callers 1

image_editingFunction · 0.85

Calls 1

rgb_to_srgbFunction · 0.85

Tested by

no test coverage detected