Loading obj2rgbd.py +56 −19 Original line number Original line Diff line number Diff line import os import os import subprocess import subprocess import sys PATH_TO_BLENDER = '' PATH_TO_BLENDER = '' # depth map scale, units in the generated depth map for RGB-D - 16-bit png # depth map scale, units in the generated depth map for RGB-D - 16-bit png #DMP = 1 # 1 m - range 0-65535 m #DMP = 1 # 1 m - range 0-65535 m #DMP = 0.1 # 10 cm - range 0-6553.5 m DMP = 0.1 # 10 cm - range 0-6553.5 m DMP = 0.01 # 1 cm - range 0-655.35 m #DMP = 0.01 # 1 cm - range 0-655.35 m #DMP = 0.001 # 1 mm - range 0-65.535 m #DMP = 0.001 # 1 mm - range 0-65.535 m fpaths = ['input/1527256815_550165_v01/1527256815_550165.obj',] model_input_folder = "input" model_output_folder = "output" fpaths = [] try: model_input_folder = sys.argv[1] except IndexError: # default value will be used pass try: DMP = float(sys.argv[2]) except IndexError: # default value will be used pass for rs,ds,_ in os.walk(model_input_folder): for d in ds: for rss,_,fss in os.walk(os.path.join(rs,d)): for f in fss: if f.endswith('obj'): fpaths.append(os.path.join(rss,f)) filelist = ','.join(fpaths) filelist = ','.join(fpaths) # this will run by Blender's bundled python # 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) 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' print("All RGB-Ds generated") model_output_folder = "output" fname = os.path.join(model_output_folder,fname) import exr2png as e2p import exr2png as e2p import matplotlib.pyplot as plt import matplotlib.pyplot as plt from PIL import Image from PIL import Image import numpy as np import numpy as np dmap = e2p.exr2arr(fname)[:,:,0] resoluton = "" if DMP>=1: resolution = str(int(DMP))+"m" elif DMP>=0.01: resolution = str(int(DMP*100))+"cm" elif DMP>=0.001: resolution = str(int(DMP*1000))+"mm" print("Depth maps will be scaled to "+resolution+" resolution covering range from 0 to "+str(DMP*65535)+" meters") for fpath in fpaths: model_name = fpath.split('/')[-1][:-4] exr_path = os.path.join(model_output_folder, model_name+"-depth-1m-float32.exr") png_path = os.path.join(model_output_folder, model_name+"-depth-"+resolution+".png") print("Generating "+png_path) dmap = e2p.exr2arr(exr_path)[:,:,0] # zero background # zero background if dmap.dtype=='float32': if dmap.dtype=='float32': dmap[dmap==10000000000.0]=0 dmap[dmap==10000000000.0]=0 Loading @@ -35,8 +72,8 @@ dmap = dmap/DMP dmap[dmap>65535]=0 dmap[dmap>65535]=0 im = Image.fromarray(dmap.astype(np.uint16)) im = Image.fromarray(dmap.astype(np.uint16)) im.save(os.path.join(model_output_folder,'model-depth.png')) im.save(png_path) plt.imshow(dmap) #plt.imshow(dmap) plt.colorbar() #plt.colorbar() plt.show() #plt.show() No newline at end of file No newline at end of file Loading
obj2rgbd.py +56 −19 Original line number Original line Diff line number Diff line import os import os import subprocess import subprocess import sys PATH_TO_BLENDER = '' PATH_TO_BLENDER = '' # depth map scale, units in the generated depth map for RGB-D - 16-bit png # depth map scale, units in the generated depth map for RGB-D - 16-bit png #DMP = 1 # 1 m - range 0-65535 m #DMP = 1 # 1 m - range 0-65535 m #DMP = 0.1 # 10 cm - range 0-6553.5 m DMP = 0.1 # 10 cm - range 0-6553.5 m DMP = 0.01 # 1 cm - range 0-655.35 m #DMP = 0.01 # 1 cm - range 0-655.35 m #DMP = 0.001 # 1 mm - range 0-65.535 m #DMP = 0.001 # 1 mm - range 0-65.535 m fpaths = ['input/1527256815_550165_v01/1527256815_550165.obj',] model_input_folder = "input" model_output_folder = "output" fpaths = [] try: model_input_folder = sys.argv[1] except IndexError: # default value will be used pass try: DMP = float(sys.argv[2]) except IndexError: # default value will be used pass for rs,ds,_ in os.walk(model_input_folder): for d in ds: for rss,_,fss in os.walk(os.path.join(rs,d)): for f in fss: if f.endswith('obj'): fpaths.append(os.path.join(rss,f)) filelist = ','.join(fpaths) filelist = ','.join(fpaths) # this will run by Blender's bundled python # 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) 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' print("All RGB-Ds generated") model_output_folder = "output" fname = os.path.join(model_output_folder,fname) import exr2png as e2p import exr2png as e2p import matplotlib.pyplot as plt import matplotlib.pyplot as plt from PIL import Image from PIL import Image import numpy as np import numpy as np dmap = e2p.exr2arr(fname)[:,:,0] resoluton = "" if DMP>=1: resolution = str(int(DMP))+"m" elif DMP>=0.01: resolution = str(int(DMP*100))+"cm" elif DMP>=0.001: resolution = str(int(DMP*1000))+"mm" print("Depth maps will be scaled to "+resolution+" resolution covering range from 0 to "+str(DMP*65535)+" meters") for fpath in fpaths: model_name = fpath.split('/')[-1][:-4] exr_path = os.path.join(model_output_folder, model_name+"-depth-1m-float32.exr") png_path = os.path.join(model_output_folder, model_name+"-depth-"+resolution+".png") print("Generating "+png_path) dmap = e2p.exr2arr(exr_path)[:,:,0] # zero background # zero background if dmap.dtype=='float32': if dmap.dtype=='float32': dmap[dmap==10000000000.0]=0 dmap[dmap==10000000000.0]=0 Loading @@ -35,8 +72,8 @@ dmap = dmap/DMP dmap[dmap>65535]=0 dmap[dmap>65535]=0 im = Image.fromarray(dmap.astype(np.uint16)) im = Image.fromarray(dmap.astype(np.uint16)) im.save(os.path.join(model_output_folder,'model-depth.png')) im.save(png_path) plt.imshow(dmap) #plt.imshow(dmap) plt.colorbar() #plt.colorbar() plt.show() #plt.show() No newline at end of file No newline at end of file