Commit b2583e61 authored by Oleg Dzhimiev's avatar Oleg Dzhimiev

removed debug, added 16bit depth map conversion from *.exr

parent 81a91132
......@@ -80,7 +80,7 @@ rn = scene.node_tree.nodes.new('CompositorNodeRLayers')
depth = scene.node_tree.nodes.new('CompositorNodeOutputFile')
depth.format.file_format = 'OPEN_EXR'
depth.format.color_depth = '32'
# TODO: try BW
# Note: no option for BW?
depth.format.color_mode = 'RGB'
depth.format.exr_codec = 'ZIP'
depth.base_path = model_output_folder
......@@ -109,5 +109,3 @@ for fpath in fpaths:
bpy.data.objects.remove(obj)
# rename exr
os.rename(os.path.join(model_output_folder,'depth-0001.exr'),os.path.join(model_output_folder,obj_name+"-depth.exr"))
......@@ -11,7 +11,6 @@ def exr2arr(exrfile):
dw = file.header()['dataWindow']
channels = file.header()['channels'].keys()
print(channels)
channels_list = list()
for c in ('R', 'G', 'B', 'A'):
if c in channels:
......@@ -23,8 +22,7 @@ def exr2arr(exrfile):
color_channels = file.channels(channels_list, Imath.PixelType(Imath.PixelType.FLOAT))
channels_tuple = [np.fromstring(channel, dtype='f') for channel in color_channels]
res = np.dstack(channels_tuple)
res.reshape(size + (len(channels_tuple),))
return res[:,:,0]
return res.reshape(size + (len(channels_tuple),))
if __name__ == "__main__":
......
import os
import subprocess
import exr2png as e2p
PATH_TO_BLENDER = ""
PATH_TO_BLENDER = ''
# depth map scale, units in the generated depth map for RGB-D - 16-bit png
#DMP = 1 # 1 m - range 0-65535 m
#DMP = 0.1 # 10 cm - range 0-6553.5 m
DMP = 0.01 # 1 cm - range 0-655.35 m
#DMP = 0.001 # 1 mm - range 0-65.535 m
fpaths = ['input/1527256815_550165_v01/1527256815_550165.obj',
'input/1527256903_350165/v03/1527256903_350165.obj',
'input/1488240695_710844_x3d105/1488240695_710844.obj']
fpaths = ['input/1527256815_550165_v01/1527256815_550165.obj',]
filelist = ','.join(fpaths)
# this will run by Blender's bundled python
subprocess.run(os.path.join(PATH_TO_BLENDER,'blender')+" -b -P blender_generate_image_and_depth.py -- "+filelist, shell=True)
fname = '1527256815_550165-depth.exr'
model_output_folder = "output"
fname = os.path.join(model_output_folder,fname)
import exr2png as e2p
import matplotlib.pyplot as plt
from PIL import Image
import numpy as np
dmap = e2p.exr2arr(fname)[:,:,0]
# zero background
if dmap.dtype=='float32':
dmap[dmap==10000000000.0]=0
dmap = dmap/DMP
dmap[dmap>65535]=0
im = Image.fromarray(dmap.astype(np.uint16))
im.save(os.path.join(model_output_folder,'model-depth.png'))
plt.imshow(dmap)
plt.colorbar()
plt.show()
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment