def runprobe(event): posx = event.x posy = event.y array2d = list() plt.figure(1) plt.clf() print ("Run ray tracing") boxm_batch.init_process("boxmOclRunRenderProbeProcess") boxm_batch.set_input_from_db(0, scene_mgr) boxm_batch.set_input_from_db(1, cam) boxm_batch.set_input_unsigned(2, posx) boxm_batch.set_input_unsigned(3, posy) boxm_batch.set_input_float(4, (image2.getpixel((posx, posy))) / 255.0) boxm_batch.run_process() for i in range(0, 10): (scene_id, scene_type) = boxm_batch.commit_output(i) array_1d = dbvalue(scene_id, scene_type) vallist = boxm_batch.get_bbas_1d_array_float(scene_id) array2d.append(vallist) for i in [1, 2, 3, 5]: plt.plot(array2d[0], array2d[i]) # plt.plot(array2d[0],array2d[7]); plt.legend(("Omega", "Mean0", "Alpha", "Mean1"), loc="upper left") print (image2.getpixel((posx, posy))) / 255.0 plt.show()
def run(self): while not self.kill_received: # get a task try: job = self.work_queue.get_nowait() except Queue.Empty: break start_time = time.time() print("Creating a Scene") boxm_batch.init_process("boxmCreateSceneProcess") boxm_batch.set_input_string(0, job.input_scene_path) boxm_batch.run_process() (scene_id, scene_type) = boxm_batch.commit_output(0) scene = dbvalue(scene_id, scene_type) print("Save Scene") boxm_batch.init_process("boxmSaveOccupancyRawProcess") boxm_batch.set_input_from_db(0, scene) boxm_batch.set_input_string(1, job.output_scene_path) boxm_batch.set_input_unsigned(2, 0) boxm_batch.set_input_unsigned(3, 1) boxm_batch.run_process() print("Runing time for worker:", self.name) print(time.time() - start_time)
def run(self): while not self.kill_received: # get a task try: job = self.work_queue.get_nowait() except Queue.Empty: break start_time = time.time(); model_dir=job.model_dir; model_name =job.model_name; grey_offset = job.grey_offset; print("Model dir:") print model_dir print("Model Name:") print model_name print("Creating a Scene"); boxm_batch.init_process("boxmCreateSceneProcess"); boxm_batch.set_input_string(0, model_dir + "/" + model_name + ".xml"); boxm_batch.run_process(); (scene_id, scene_type) = boxm_batch.commit_output(0); scene= dbvalue(scene_id, scene_type); print("Splitting the scene"); boxm_batch.init_process("boxmSplitSceneProcess"); boxm_batch.set_input_from_db(0, scene); boxm_batch.run_process(); (scene_id, scene_type) = boxm_batch.commit_output(0); apm_scene = dbvalue(scene_id, scene_type); (scene_id, scene_type) = boxm_batch.commit_output(1); alpha_scene = dbvalue(scene_id, scene_type); print("Save Scene"); boxm_batch.init_process("boxmSaveScene RawProcess"); boxm_batch.set_input_from_db(0,alpha_scene); boxm_batch.set_input_string(1,model_dir + "/drishti/alpha_scene"); boxm_batch.set_input_unsigned(2,0); boxm_batch.set_input_unsigned(3,1); boxm_batch.run_process(); #free memory boxm_batch.clear(); print ("Runing time for worker:", self.name) print(time.time() - start_time); #output exit code in this case #important: having a result queue makes the execute_jobs wait for all jobs in the queue before exiting self.result_queue.put(0);
def run(self): while not self.kill_received: # get a task try: job = self.work_queue.get_nowait() except Queue.Empty: break start_time = time.time(); model_dir=job.model_dir; ply_file =job.ply_file; grey_offset = job.grey_offset; boxm_batch.set_stdout('logs/log_' + str(os.getpid())+ ".txt"); boxm_batch.init_process("boxmCreateSceneProcess"); boxm_batch.set_input_string(0, model_dir +"/pmvs_scene.xml"); boxm_batch.run_process(); (scene_id, scene_type) = boxm_batch.commit_output(0); scene= dbvalue(scene_id, scene_type); boxm_batch.init_process("boxm_create_scene_from_ply_process"); boxm_batch.set_input_string(0,ply_file); boxm_batch.set_input_from_db(1,scene); boxm_batch.set_input_float(2,grey_offset); boxm_batch.run_process(); (scene_id, scene_type) = boxm_batch.commit_output(0); scene = dbvalue(scene_id, scene_type); print("Save Scene"); boxm_batch.init_process("boxmSaveSceneRawProcess"); boxm_batch.set_input_from_db(0,scene); boxm_batch.set_input_string(1,model_dir + "/drishti/ply_scene"); boxm_batch.set_input_unsigned(2,0); boxm_batch.set_input_unsigned(3,1); boxm_batch.run_process(); #free memory boxm_batch.reset_stdout(); boxm_batch.clear(); print ("Runing time for worker:", self.name) print(time.time() - start_time); #output exit code in this case #important: having a result queue makes the execute_jobs wait for all jobs in the queue before exiting self.result_queue.put(0);
def neighborchange(event): posx = event.x posy = event.y array2d = list() vallist = list() plt.figure(1) plt.clf() for i in (-1, 0): for j in (-1, 0): print ("Run ray tracing") boxm_batch.init_process("boxmOclRunRenderProbeProcess") boxm_batch.set_input_from_db(0, scene_mgr) boxm_batch.set_input_from_db(1, cam) boxm_batch.set_input_unsigned(2, posx + i) boxm_batch.set_input_unsigned(3, posy + j) boxm_batch.set_input_float(4, (image2.getpixel((posx, posy))) / 255.0) boxm_batch.run_process() (scene_id, scene_type) = boxm_batch.commit_output(10) x = boxm_batch.get_input_float(scene_id) vallist.append(x) print vallist
print("Loading Camera"); boxm_batch.init_process("vpglLoadPerspectiveCameraProcess"); boxm_batch.set_input_string(0,camera_fnames % i); boxm_batch.run_process(); (id,type) = boxm_batch.commit_output(0); cam = dbvalue(id,type); print("Loading Image"); boxm_batch.init_process("vilLoadImageViewProcess"); boxm_batch.set_input_string(0,image_fnames % i); boxm_batch.run_process(); (id,type) = boxm_batch.commit_output(0); image = dbvalue(id,type); print("Updating Scene"); boxm_batch.init_process("boxmUpdateProcess"); boxm_batch.set_input_from_db(0,image); boxm_batch.set_input_from_db(1,cam); boxm_batch.set_input_from_db(2,scene); boxm_batch.set_input_unsigned(3,0); boxm_batch.run_process(); print("Refine Scene"); boxm_batch.init_process("boxmRefineSceneProcess"); boxm_batch.set_input_from_db(0,scene); boxm_batch.set_input_float(1,0.2); boxm_batch.set_input_bool(2,1); boxm_batch.run_process();
# for an image pair to be connected in the image connectivity graph min_number_of_matches = 16 imgs = [] sizes = [] for i in range(0, img_cnt, 1): print("Loading Image") boxm_batch.init_process("vilLoadImageViewProcess") boxm_batch.set_input_string(0, img_path + img_name % i) boxm_batch.run_process() (id, type) = boxm_batch.commit_output(0) image = dbvalue(id, type) imgs.append(image) boxm_batch.init_process("vilImageSizeProcess") boxm_batch.set_input_from_db(0, image) boxm_batch.run_process() (ni_id, type) = boxm_batch.commit_output(0) (nj_id, type) = boxm_batch.commit_output(1) ni = boxm_batch.get_input_unsigned(ni_id) nj = boxm_batch.get_input_unsigned(nj_id) if ni > nj: sizes.append(ni) else: sizes.append(nj) # set up the connectivity table to be used for computing tracks from the # matches boxm_batch.init_process("baplCreateConnTableProcess") boxm_batch.set_input_int(0, img_cnt) boxm_batch.run_process()
dir = "/Users/isa/Experiments/super3d/scili_experiments_bicubic/sr2_scene_sr2_images/expectedImgs_0" original_img_dir = "/Users/isa/Experiments/super3d/scili_experiments_bicubic/superresolved_imgs" npixels = 720*1280*4 test_frames=[78, 196, 244, 42]; ssd_vals=[]; ssd_avg = 0; for frame in test_frames: boxm_batch.init_process("vilLoadImageViewProcess"); boxm_batch.set_input_string(0,dir + "/predicted_img_%(#)05d.tiff"%{"#":frame}); boxm_batch.run_process(); (id,type) = boxm_batch.commit_output(0); pred_img = dbvalue(id,type); boxm_batch.init_process("vilConvertPixelTypeProcess"); boxm_batch.set_input_from_db(0,pred_img); boxm_batch.set_input_string(1, "byte"); boxm_batch.run_process(); (id,type) = boxm_batch.commit_output(0); pred_img_byte = dbvalue(id,type); boxm_batch.init_process("vilSaveImageViewProcess"); boxm_batch.set_input_from_db(0,pred_img_byte); boxm_batch.set_input_string(1,dir + "/predicted_img_%(#)05d.png"%{"#":frame}); boxm_batch.run_process(); boxm_batch.init_process("vilLoadImageViewProcess"); boxm_batch.set_input_string(0,original_img_dir + "/frames_%(#)05d.tif"%{"#":frame}); boxm_batch.run_process();
boxm_batch.run_process(); (scene_id, scene_type) = boxm_batch.commit_output(0); scene = dbvalue(scene_id, scene_type); print("Loading Top Camera"); boxm_batch.init_process("vpglLoadPerspectiveCameraProcess"); boxm_batch.set_input_string(0,camera_fname); boxm_batch.run_process(); (id,type) = boxm_batch.commit_output(0); top_cam = dbvalue(id,type); # Generate Expected Image print("Generating Expected Image"); boxm_batch.init_process("boxmRenderExpectedRTProcess"); boxm_batch.set_input_from_db(0,scene); boxm_batch.set_input_from_db(1,top_cam); boxm_batch.set_input_unsigned(2,1280); boxm_batch.set_input_unsigned(3,720); boxm_batch.set_input_bool(4,0); #black background boxm_batch.run_process(); (id,type) = boxm_batch.commit_output(0); expected = dbvalue(id,type); (id,type) = boxm_batch.commit_output(1); mask = dbvalue(id,type); print("saving expected image"); boxm_batch.init_process("vilSaveImageViewProcess"); boxm_batch.set_input_from_db(0,expected); boxm_batch.set_input_string(1,expected_fname); boxm_batch.run_process();
keypoints_available = 0; outlier_threshold = 9.0; # after finding F between a pair, all matches that are off by 9.0 pixels are considered outliers min_number_of_matches = 16; # for an image pair to be connected in the image connectivity graph sizes = []; for i in range(0,img_cnt,1): print("Loading Image"); boxm_batch.init_process("vilLoadImageViewProcess"); boxm_batch.set_input_string(0,img_path + img_name % (i*every_nth+1)); boxm_batch.run_process(); (id,type) = boxm_batch.commit_output(0); image = dbvalue(id,type); boxm_batch.init_process("vilImageSizeProcess"); boxm_batch.set_input_from_db(0, image); boxm_batch.run_process(); (ni_id, type) = boxm_batch.commit_output(0); (nj_id, type) = boxm_batch.commit_output(1); ni=boxm_batch.get_input_unsigned(ni_id); nj=boxm_batch.get_input_unsigned(nj_id); if ni > nj: sizes.append(ni); else: sizes.append(nj); boxm_batch.remove_data(image.id); # set up the connectivity table to be used for computing tracks from the matches boxm_batch.init_process("baplCreateConnTableProcess"); boxm_batch.set_input_int(0, img_cnt);
import boxm_batch; boxm_batch.register_processes(); boxm_batch.register_datatypes(); class dbvalue: def __init__(self, index, type): self.id = index # unsigned integer self.type = type # string model_dir="/Users/isa/Experiments/DowntownBOXM_12_12_4"; print("Creating a Scene"); boxm_batch.init_process("boxmCreateSceneProcess"); boxm_batch.set_input_string(0, model_dir +"/mean_color_scene.xml"); boxm_batch.run_process(); (scene_id, scene_type) = boxm_batch.commit_output(0); scene= dbvalue(scene_id, scene_type); print("Save Scene"); boxm_batch.init_process("boxmSaveSceneRawProcess"); boxm_batch.set_input_from_db(0,scene); boxm_batch.set_input_string(1, model_dir + "/raw_mean_scene"); boxm_batch.set_input_unsigned(2,0); boxm_batch.set_input_unsigned(3,1); boxm_batch.run_process();
model_dir ="/Users/isa/Experiments/CapitolBOXM_1_1_1"; print("Creating a Scene"); boxm_batch.init_process("boxmCreateSceneProcess"); boxm_batch.set_input_string(0, model_dir +"/gaussf1_scene.xml"); boxm_batch.run_process(); (scene_id, scene_type) = boxm_batch.commit_output(0); gauss_scene = dbvalue(scene_id, scene_type); print("*************************************"); print("Computing Entropies"); boxm_batch.init_process("boxmComputeEntropyProcess"); boxm_batch.set_input_from_db(0, gauss_scene); boxm_batch.run_process(); (scene_id, scene_type) = boxm_batch.commit_output(0); entropy_scene = dbvalue(scene_id, scene_type); print("Save Scene"); boxm_batch.init_process("boxmSaveOccupancyRawProcess"); boxm_batch.set_input_from_db(0,entropy_scene); boxm_batch.set_input_string(1, model_dir + "/entropy_scene"); boxm_batch.set_input_unsigned(2,0); boxm_batch.set_input_unsigned(3,1); boxm_batch.run_process();
(scene_id, scene_type) = boxm_batch.commit_output(0); scene= dbvalue(scene_id, scene_type); #print("*************************************"); #print("Save Scene"); #boxm_batch.init_process("boxmSaveOccupancyRawProcess"); #boxm_batch.set_input_from_db(0,scene); #boxm_batch.set_input_string(1,model_dir + "/" + model_name); #boxm_batch.set_input_unsigned(2,0); #boxm_batch.set_input_unsigned(3,1); #boxm_batch.run_process(); print("*************************************"); print("Computing Excpected Color Scene"); boxm_batch.init_process("boxmComputeExpectedColorSceneProcess"); boxm_batch.set_input_from_db(0, scene); boxm_batch.set_input_float(1, grey_offset); boxm_batch.run_process(); (scene_id, scene_type) = boxm_batch.commit_output(0); expected_color_scene = dbvalue(scene_id, scene_type); print("*************************************"); print("Save Scene"); boxm_batch.init_process("boxmSaveOccupancyRawProcess"); boxm_batch.set_input_from_db(0,expected_color_scene); boxm_batch.set_input_string(1, model_dir + "/mean_color_scene"); boxm_batch.set_input_unsigned(2,0); boxm_batch.set_input_unsigned(3,1); boxm_batch.run_process();
if not os.path.isdir(grey_dir + '/'): os.mkdir(grey_dir + '/'); rgb_imgs = glob.glob1(rgb_dir, '*.png'); for img in rgb_imgs: #tif_img_name = os.path.splitext(img)[0] + '.tif'; boxm_batch.init_process("vilLoadImageViewProcess"); boxm_batch.set_input_string(0,rgb_dir + '/' + img); boxm_batch.run_process(); (id,type) = boxm_batch.commit_output(0); rgb_img = dbvalue(id,type); boxm_batch.init_process("vilRGBToGreyProcess"); boxm_batch.set_input_from_db(0,rgb_img); boxm_batch.run_process(); (id,type) = boxm_batch.commit_output(0); grey_img = dbvalue(id,type); boxm_batch.init_process("vilSaveImageViewProcess"); boxm_batch.set_input_from_db(0,grey_img); boxm_batch.set_input_string(1,grey_dir + '/' + img); boxm_batch.run_process(); boxm_batch.remove_data(rgb_img.id) boxm_batch.remove_data(grey_img.id)
# scene_path = "F:/visdt/sceneocl/scene.xml"; # image_path ="f:/visdt/cd/_00113.png"; # int_image_path ="F:/visdt/imgs/gray00113.png"; # camera_path="f:/visdt/cameras_KRT/camera_00113.txt" print ("Load Initial camera ") boxm_batch.init_process("vpglLoadPerspectiveCameraProcess") boxm_batch.set_input_string(0, camera_path) boxm_batch.run_process() (id, type) = boxm_batch.commit_output(0) cam = dbvalue(id, type) print ("initializing ray tracing") boxm_batch.init_process("boxmOclInitRenderProbeProcess") boxm_batch.set_input_string(0, scene_path) boxm_batch.set_input_from_db(1, cam) boxm_batch.set_input_unsigned(2, 200) boxm_batch.set_input_unsigned(3, 200) boxm_batch.run_process() (scene_id, scene_type) = boxm_batch.commit_output(0) scene_mgr = dbvalue(scene_id, scene_type) image2 = Image.open(int_image_path) def subone(y): return 1 - y def mult(x, y): return x * y
if len(model_name) == 0: print "Missing Model Name" sys.exit(-1); if len(model_out_name) == 0: print "Missing Model Out Name" sys.exit(-1); boxm_batch.init_process("boxmCreateSceneProcess"); boxm_batch.set_input_string(0, model_dir +"/" + str(model_name) + ".xml"); boxm_batch.run_process(); (scene_id, scene_type) = boxm_batch.commit_output(0); scene = dbvalue(scene_id, scene_type); print("*************************************"); boxm_batch.init_process("boxm_remove_level0_process"); boxm_batch.set_input_from_db(0, scene); boxm_batch.set_input_string(1, model_out_name); boxm_batch.run_process(); (scene_id, scene_type) = boxm_batch.commit_output(0); restructured_scene = dbvalue(scene_id, scene_type); print("*************************************"); boxm_batch.init_process("boxmSaveOccupancyRawProcess"); boxm_batch.set_input_from_db(0,restructured_scene); boxm_batch.set_input_string(1, model_dir + "/restructured_scene"); boxm_batch.set_input_unsigned(2,0); boxm_batch.set_input_unsigned(3,1); boxm_batch.run_process();
boxm_batch.set_input_string(0,camera_fnames % i); status = boxm_batch.run_process(); (id,type) = boxm_batch.commit_output(0); cam = dbvalue(id,type); print("Loading Image"); boxm_batch.init_process("vilLoadImageViewProcess"); boxm_batch.set_input_string(0,image_fnames % i); status = status & boxm_batch.run_process(); (id,type) = boxm_batch.commit_output(0); image = dbvalue(id,type); if(status): print("Updating Scene"); boxm_batch.init_process("boxmUpdateRTProcess"); boxm_batch.set_input_from_db(0,image); boxm_batch.set_input_from_db(1,cam); boxm_batch.set_input_from_db(2,scene); boxm_batch.set_input_unsigned(3,0); boxm_batch.set_input_bool(4, 0); boxm_batch.run_process(); # Generate Expected Image print("Generating Expected Image"); boxm_batch.init_process("boxmRenderExpectedRTProcess"); boxm_batch.set_input_from_db(0,scene); boxm_batch.set_input_from_db(1,vcam); boxm_batch.set_input_unsigned(2,1280); boxm_batch.set_input_unsigned(3,720); boxm_batch.set_input_bool(4,0); boxm_batch.run_process();
"D:\\vj\\data\\CapitolSiteHigh\\boxm\\scene.xml") boxm_batch.set_input_string(1, "apm_mog_grey") boxm_batch.run_process() (scene_id, scene_type) = boxm_batch.commit_output(0) scene = dbvalue(scene_id, scene_type) print("Loading camera") boxm_batch.init_process("vpglLoadPerspectiveCameraProcess") boxm_batch.set_input_string(0, "camera_00116.txt") boxm_batch.run_process() (cam_id, cam_type) = boxm_batch.commit_output(0) camera = dbvalue(cam_id, cam_type) print("Rendering Image") boxm_batch.init_process("boxmRenderExpectedProcess") boxm_batch.set_input_from_db(0, scene) boxm_batch.set_input_from_db(1, camera) boxm_batch.set_input_unsigned(2, 1280) boxm_batch.set_input_unsigned(3, 720) boxm_batch.run_process() (img_id, img_type) = boxm_batch.commit_output(0) (mask_id, mask_type) = boxm_batch.commit_output(1) img = dbvalue(img_id, img_type) mask = dbvalue(mask_id, mask_type) boxm_batch.init_process("vilSaveImageViewProcess") boxm_batch.set_input_from_db(0, img) boxm_batch.set_input_string(1, "image.tiff") boxm_batch.run_process() boxm_batch.init_process("vilSaveImageViewProcess")
boxm_batch.set_input_string(0,"D:\\vj\\data\\CapitolSiteHigh\\boxm\\scene.xml"); boxm_batch.set_input_string(1,"apm_mog_grey"); boxm_batch.run_process(); (scene_id, scene_type) = boxm_batch.commit_output(0); scene = dbvalue(scene_id, scene_type); print("Loading camera"); boxm_batch.init_process("vpglLoadPerspectiveCameraProcess"); boxm_batch.set_input_string(0,"camera_00116.txt"); boxm_batch.run_process(); (cam_id,cam_type)=boxm_batch.commit_output(0); camera=dbvalue(cam_id, cam_type); print("Rendering Image"); boxm_batch.init_process("boxmRenderExpectedProcess"); boxm_batch.set_input_from_db(0,scene); boxm_batch.set_input_from_db(1,camera); boxm_batch.set_input_unsigned(2,1280); boxm_batch.set_input_unsigned(3,720); boxm_batch.run_process(); (img_id,img_type)=boxm_batch.commit_output(0); (mask_id,mask_type)=boxm_batch.commit_output(1); img = dbvalue(img_id, img_type); mask = dbvalue(mask_id, mask_type); boxm_batch.init_process("vilSaveImageViewProcess"); boxm_batch.set_input_from_db(0,img); boxm_batch.set_input_string(1,"image.tiff"); boxm_batch.run_process(); boxm_batch.init_process("vilSaveImageViewProcess");
model_dir ="/Users/isa/Experiments/CapitolBOXM_1_1_1"; print("Creating a Scene"); boxm_batch.init_process("boxmCreateSceneProcess"); boxm_batch.set_input_string(0, model_dir +"/apm_scene.xml"); boxm_batch.run_process(); (scene_id, scene_type) = boxm_batch.commit_output(0); mog_scene = dbvalue(scene_id, scene_type); print("*************************************"); print("Merging the scene"); boxm_batch.init_process("boxmMergeMixturesProcess"); boxm_batch.set_input_from_db(0, mog_scene); boxm_batch.run_process(); (scene_id, scene_type) = boxm_batch.commit_output(0); gauss_scene = dbvalue(scene_id, scene_type); print("Save Scene"); boxm_batch.init_process("boxmSaveOccupancyRawProcess"); boxm_batch.set_input_from_db(0,gauss_scene); boxm_batch.set_input_string(1,model_dir + "/gauss_scene"); boxm_batch.set_input_unsigned(2,0); boxm_batch.set_input_unsigned(3,1); boxm_batch.run_process();
def __init__(self, index, type): self.id = index # unsigned integer self.type = type # string dir = "/Users/isa/Experiments/super3d/scene/expectedImgs_2" test_frames = [8, 112, 96, 208] for frame in test_frames: boxm_batch.init_process("vilLoadImageViewProcess") boxm_batch.set_input_string(0, dir + "/predicted_img_mask_%(#)05d.tiff" % {"#": frame}) boxm_batch.run_process() (id, type) = boxm_batch.commit_output(0) vis_img = dbvalue(id, type) boxm_batch.init_process("vilThresholdImageProcess") boxm_batch.set_input_from_db(0, vis_img) boxm_batch.set_input_float(1, 0.99) boxm_batch.set_input_bool(2, True) boxm_batch.run_process() (id, type) = boxm_batch.commit_output(0) mask_img = dbvalue(id, type) boxm_batch.init_process("vilSaveImageViewProcess") boxm_batch.set_input_from_db(0, mask_img) boxm_batch.set_input_string(1, dir + "/binary_mask_%(#)05d.tiff" % {"#": frame}) boxm_batch.run_process() boxm_batch.remove_data(vis_img.id) boxm_batch.remove_data(mask_img.id)
#dir = "/Users/isa/Experiments/super3d/sr2_scene_sr2_images/expectedImgs_1" #dir = "/Users/isa/Experiments/super3d/sr2_3scene_sr2_images/expectedImgs_2" #dir = "/Users/isa/Experiments/super3d/scene_sr2_images/expectedImgs_2" #dir = "/Users/isa/Experiments/super3d/scene/expectedImgs_2" #dir = "/Volumes/vision/video/isabel/super3d/scili_experiment/normal_scene/expectedImgs_0" dir = "/Users/isa/Experiments/super3d/scili_experiments_bicubic/sr2_scene_sr2_images/expectedImgs_0" boxm_batch.init_process("vilLoadImageViewProcess"); boxm_batch.set_input_string(0,dir + "/exepected_var.tiff"); boxm_batch.run_process(); (id,type) = boxm_batch.commit_output(0); var_img = dbvalue(id,type); boxm_batch.init_process("vilImageMeanProcess"); boxm_batch.set_input_from_db(0,var_img); boxm_batch.run_process(); (id,type) = boxm_batch.commit_output(0); mean = dbvalue(id,type); mean_val = boxm_batch.get_output_float(mean.id); mean_file = dir + "/mean_var.txt" f = open(mean_file, 'w'); f.write(str(mean_val)); f.close();