Commit c0fbf9a8 authored by Oleg Dzhimiev's avatar Oleg Dzhimiev
Browse files

comments and path scanning

parent b111e3b1
Loading
Loading
Loading
Loading
+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
@@ -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