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(); 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
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)
(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();
(id, type) = boxm_batch.commit_output(1) out_img2 = dbvalue(id, type) boxm_batch.init_process("vilSaveImageViewProcess") boxm_batch.set_input_from_db(0, out_img1) boxm_batch.set_input_string(1, out_match_img_name % (i, j)) boxm_batch.run_process() boxm_batch.init_process("vilSaveImageViewProcess") boxm_batch.set_input_from_db(0, out_img2) boxm_batch.set_input_string(1, out_match_img_name % (j, i)) boxm_batch.run_process() boxm_batch.init_process("baplRefineMatchProcess") boxm_batch.set_input_from_db(0, match_set) boxm_batch.set_input_float(1, outlier_thresholds[ii]) boxm_batch.set_input_int(2, min_number_of_matches) boxm_batch.run_process() (id, type) = boxm_batch.commit_output(0) refined_match_set = dbvalue(id, type) boxm_batch.init_process("baplMatchDisplayProcess") boxm_batch.set_input_from_db(0, imgs[i]) boxm_batch.set_input_from_db(1, imgs[j]) boxm_batch.set_input_from_db(2, refined_match_set) boxm_batch.run_process() (id, type) = boxm_batch.commit_output(0) out_img1 = dbvalue(id, type) (id, type) = boxm_batch.commit_output(1) out_img2 = dbvalue(id, type)
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(); 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(); # 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(); (id,type) = boxm_batch.commit_output(0); expected = dbvalue(id,type); (id,type) = boxm_batch.commit_output(1);
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();
(id,type) = boxm_batch.commit_output(0); image = dbvalue(id,type); print "Generating opt_samples for camera ", camera_idx[c]; boxm_batch.init_process("boxmGenerateOptSamplesProcess"); 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_string(3,image_ids[c]); boxm_batch.set_input_bool(4,0); boxm_batch.run_process(); # Do the optimization boxm_batch.init_process("boxmOptBayesianUpdateProcess"); boxm_batch.set_input_from_db(0,scene); boxm_batch.set_input_float(1,damping_factor); boxm_batch.set_input_string(2,image_id_fname); 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(); (id,type) = boxm_batch.commit_output(0); expected = dbvalue(id,type); (id,type) = boxm_batch.commit_output(1);
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("*************************************"); print("Save Occupancy Scene"); boxm_batch.init_process("boxmSaveOccupancyRawProcess"); boxm_batch.set_input_from_db(0,scene); boxm_batch.set_input_string(1, model_dir + "/drishti/occupancy"); 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 Mean Scene"); boxm_batch.init_process("boxmSaveSceneRawProcess"); boxm_batch.set_input_from_db(0,expected_color_scene); boxm_batch.set_input_string(1, model_dir + "/drishti/mean_color_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);