def scale_and_offset_values(img, scale, offset): boxm2_batch.init_process("vilScaleAndOffsetValuesProcess") boxm2_batch.set_input_from_db(0, img) boxm2_batch.set_input_float(1, scale) boxm2_batch.set_input_float(2, offset) boxm2_batch.run_process() return
def read_CLIF07(indir,outdir,camnum,datatype="CLIF06") : boxm2_batch.init_process("bilReadCLIF07DataProcess") boxm2_batch.set_input_string(0,indir); boxm2_batch.set_input_string(1,outdir); boxm2_batch.set_input_int(2,camnum); boxm2_batch.set_input_string(3,datatype); boxm2_batch.run_process();
def get_number_of_planes(img): boxm2_batch.init_process("vilGetNumberOfPlanesProcess"); boxm2_batch.set_input_from_db(0, img); boxm2_batch.run_process(); (id, type) = boxm2_batch.commit_output(0); n_planes = boxm2_batch.get_output_unsigned(id) return n_planes;
def BGR_to_RGB(inimg): boxm2_batch.init_process("vilBGRToRGBProcess") boxm2_batch.set_input_from_db(0, inimg) boxm2_batch.run_process() (id, type) = boxm2_batch.commit_output(0) out_img = dbvalue(id,type) return out_img
def gen_tex_mesh(mesh, in_img_dir, in_cam_dir, out_dir): batch.init_process("boxm2TextureMeshProcess") batch.set_input_from_db(0, mesh) batch.set_input_string(1, in_img_dir) batch.set_input_string(2, in_cam_dir) batch.set_input_string(3, out_dir) batch.run_process()
def load_mesh(filename): batch.init_process("boxm2LoadMeshProcess") batch.set_input_string(0, filename) batch.run_process() (id, type) = batch.commit_output(0) mesh = dbvalue(id, type) return mesh
def import_point_cloud(scene, cache, in_file, min_octree_depth=2): batch.init_process("boxm2ImportPointCloudProcess") batch.set_input_from_db(0, scene) batch.set_input_from_db(1, cache) batch.set_input_string(2, in_file) batch.set_input_unsigned(3, min_octree_depth) batch.run_process()
def import_triangle_mesh(scene, cache, ply_filename, occupied_prob=0.99): batch.init_process("boxm2ImportTriangleMeshProcess") batch.set_input_from_db(0, scene) batch.set_input_from_db(1, cache) batch.set_input_string(2, ply_filename) batch.set_input_float(3, occupied_prob) batch.run_process()
def paint_mesh(scene, cache, in_file, out_file): batch.init_process("boxm2PaintMeshProcess") batch.set_input_from_db(0, scene) batch.set_input_from_db(1, cache) batch.set_input_string(2, in_file) batch.set_input_string(3, out_file) batch.run_process()
def export_stack(scene, cache, outdir, identifier): batch.init_process("boxm2ExportStackImagesProcess") batch.set_input_from_db(0, scene) batch.set_input_from_db(1, cache) batch.set_input_string(2, outdir) batch.set_input_string(3, identifier) batch.run_process()
def get_3d_point_from_index(scene, cache, block_index, index): # Warning, you probably shouldn't be doing this! batch.init_process("boxm2CppGet3dPointFromIndexProcess") batch.set_input_from_db(0, scene) batch.set_input_from_db(1, cache) batch.set_input_int(2, block_index[0]) batch.set_input_int(3, block_index[1]) batch.set_input_int(4, block_index[2]) batch.set_input_int(5, index) batch.run_process() (id, type) = batch.commit_output(0) x = batch.get_output_float(id) batch.remove_data(id) (id, type) = batch.commit_output(1) y = batch.get_output_float(id) batch.remove_data(id) (id, type) = batch.commit_output(2) z = batch.get_output_float(id) batch.remove_data(id) (id, type) = batch.commit_output(3) xs = batch.get_output_float(id) batch.remove_data(id) (id, type) = batch.commit_output(4) ys = batch.get_output_float(id) batch.remove_data(id) (id, type) = batch.commit_output(5) zs = batch.get_output_float(id) batch.remove_data(id) (id, type) = batch.commit_output(6) leaf = batch.get_output_int(id) batch.remove_data(id) return ((x, y, z), (xs, ys, zs), leaf)
def histogram_equalize(img): boxm2_batch.init_process("vilHistogramEqualizeProcess"); boxm2_batch.set_input_from_db(0, img); boxm2_batch.run_process(); (id, type) = boxm2_batch.commit_output(0); img_equalized = dbvalue(id, type); return img_equalized;
def debayer(img): boxm2_batch.init_process("vilDebayerBGGRToRGBProcess") boxm2_batch.set_input_from_db(0,img); boxm2_batch.run_process(); (id, type) = boxm2_batch.commit_output(0); outimg = dbvalue(id,type); return outimg;
def batch_synoptic_function(self): """ Create synoptic function (cubic function) at each voxel """ # write image identifiers to file image_id_fname = self.model_dir + "/image_list.txt" fd = open(image_id_fname, "w") print >> fd, 2 * len(self.imgList) for i, img in enumerate(self.imgList): print >> fd, "img_%05d" % i for i, img in enumerate(self.imgList): print >> fd, "viewdir_%05d" % i fd.close() type_id_fname = self.model_dir + "/type_names_list.txt" fd2 = open(type_id_fname, "w") print >> fd2, 4 print >> fd2, "aux0" print >> fd2, "aux1" print >> fd2, "aux2" print >> fd2, "aux3" fd2.close() # open the stream cache, this is a read-only cache batch.init_process("boxm2OclBatchSynopticFunctionProcess") batch.set_input_from_db(0, self.device) batch.set_input_from_db(1, self.scene) batch.set_input_from_db(2, self.opencl_cache) batch.set_input_unsigned(3, len(self.imgList)) batch.set_input_string(4, image_id_fname) batch.set_input_float(5, 0.09) batch.run_process()
def read_CLIF07(indir, outdir, camnum, datatype="CLIF06"): boxm2_batch.init_process("bilReadCLIF07DataProcess") boxm2_batch.set_input_string(0, indir) boxm2_batch.set_input_string(1, outdir) boxm2_batch.set_input_int(2, camnum) boxm2_batch.set_input_string(3, datatype) boxm2_batch.run_process()
def create_stream_cache(self, imgs, interval=1, types="", max_gb=6.0): # write image identifiers to file # imgRange = range(0, len(imgs), interval); # num_imgs = len(imgRange); image_id_fname = self.model_dir + "/image_list.txt" fd = open(image_id_fname, "w") print >> fd, len(imgs) # for i in imgRange: # print >>fd, "img_%05d"%i for img in imgs: fname, fextension = os.path.splitext(img) bname = os.path.basename(fname) print >> fd, bname fd.close() # write type identifiers into file type_id_fname = self.model_dir + "/type_names_list.txt" fd2 = open(type_id_fname, "w") print >> fd2, 4 print >> fd2, "aux0" print >> fd2, "aux1" print >> fd2, "aux2" print >> fd2, "aux3" fd2.close() # open the stream cache, this is a read-only cache batch.init_process("boxm2CreateStreamCacheProcess") batch.set_input_from_db(0, self.scene) batch.set_input_string(1, type_id_fname) batch.set_input_string(2, image_id_fname) batch.set_input_float(3, max_gb) batch.run_process() (cache_id, cache_type) = batch.commit_output(0) self.str_cache = dbvalue(cache_id, cache_type)
def debayer(img): boxm2_batch.init_process("vilDebayerBGGRToRGBProcess") boxm2_batch.set_input_from_db(0, img) boxm2_batch.run_process() (id, type) = boxm2_batch.commit_output(0) outimg = dbvalue(id, type) return outimg
def transform_to_scene(self, to_scene, trans, rot, scale): if self.opencl_cache.type == "boxm2_opencl_cache_sptr": print("transforming scene") batch.init_process("boxm2VecfOclTransformSceneProcess") batch.set_input_from_db(0, self.scene) batch.set_input_from_db(1, to_scene) batch.set_input_from_db(2, self.opencl_cache) batch.set_input_double(3, trans[0]) batch.set_input_double(4, trans[1]) batch.set_input_double(5, trans[2]) batch.set_input_double(6, rot[0][0]) batch.set_input_double(7, rot[0][1]) batch.set_input_double(8, rot[0][2]) batch.set_input_double(9, rot[1][0]) batch.set_input_double(10, rot[1][1]) batch.set_input_double(11, rot[1][2]) batch.set_input_double(12, rot[2][0]) batch.set_input_double(13, rot[2][1]) batch.set_input_double(14, rot[2][2]) batch.set_input_double(15, scale[0]) batch.set_input_double(16, scale[1]) batch.set_input_double(17, scale[2]) return batch.run_process() else: print "ERROR: Cache type not recognized: ", self.opencl_cache.type return False
def fill_holes(img): boxm2_batch.init_process("vilFillHolesInRegionsProcess") boxm2_batch.set_input_from_db(0, img) boxm2_batch.run_process() (id, type) = boxm2_batch.commit_output(0) outimg = dbvalue(id, type) return outimg
def export_points_and_normals(scene, cache, file_out, save_aux=True, prob_thresh=0.0, vis_thresh=0.0, nmag_thresh=0.0, exp_thresh=0.0, bbox_file=""): if cache.type == "boxm2_cache_sptr": print("Exporting to oriented point cloud") batch.init_process("boxm2ExportOrientedPointCloudProcess") batch.set_input_from_db(0, scene) batch.set_input_from_db(1, cache) batch.set_input_string(2, file_out) # output aux (prob, vis, normal magnitdue) batch.set_input_bool(3, save_aux) batch.set_input_float(4, vis_thresh) # vis threshold batch.set_input_float(5, nmag_thresh) # nmag threshold batch.set_input_float(6, prob_thresh) # prob threshold # batch.set_input_float(7,exp_thresh); #exp threshold # batch.set_input_string(8, bbox_file); #bb filename batch.set_input_string(7, bbox_file) # bb filename return batch.run_process() else: print "ERROR: Cache type not recognized: ", cache.type return False
def fill_holes(img): boxm2_batch.init_process("vilFillHolesInRegionsProcess") boxm2_batch.set_input_from_db(0,img) boxm2_batch.run_process() (id,type) = boxm2_batch.commit_output(0) outimg = dbvalue(id, type); return outimg
def create_stream_cache(self, imgs, interval=1, types="", max_gb=6.0): # write image identifiers to file # imgRange = range(0, len(imgs), interval); # num_imgs = len(imgRange); image_id_fname = self.model_dir + "/image_list.txt" fd = open(image_id_fname, "w") print >> fd, len(imgs) # for i in imgRange: # print >>fd, "img_%05d"%i for img in imgs: fname, fextension = os.path.splitext(img) bname = os.path.basename(fname) print >> fd, bname fd.close() # write type identifiers into file type_id_fname = self.model_dir + "/type_names_list.txt" fd2 = open(type_id_fname, "w") print >>fd2, 4 print >>fd2, "aux0" print >>fd2, "aux1" print >>fd2, "aux2" print >>fd2, "aux3" fd2.close() # open the stream cache, this is a read-only cache batch.init_process("boxm2CreateStreamCacheProcess") batch.set_input_from_db(0, self.scene) batch.set_input_string(1, type_id_fname) batch.set_input_string(2, image_id_fname) batch.set_input_float(3, max_gb) batch.run_process() (cache_id, cache_type) = batch.commit_output(0) self.str_cache = dbvalue(cache_id, cache_type)
def batch_synoptic_function(self): """ Create synoptic function (cubic function) at each voxel """ # write image identifiers to file image_id_fname = self.model_dir + "/image_list.txt" fd = open(image_id_fname, "w") print >> fd, 2 * len(self.imgList) for i, img in enumerate(self.imgList): print >> fd, "img_%05d" % i for i, img in enumerate(self.imgList): print >> fd, "viewdir_%05d" % i fd.close() type_id_fname = self.model_dir + "/type_names_list.txt" fd2 = open(type_id_fname, "w") print >>fd2, 4 print >>fd2, "aux0" print >>fd2, "aux1" print >>fd2, "aux2" print >>fd2, "aux3" fd2.close() # open the stream cache, this is a read-only cache batch.init_process("boxm2OclBatchSynopticFunctionProcess") batch.set_input_from_db(0, self.device) batch.set_input_from_db(1, self.scene) batch.set_input_from_db(2, self.opencl_cache) batch.set_input_unsigned(3, len(self.imgList)) batch.set_input_string(4, image_id_fname) batch.set_input_float(5, 0.09) batch.run_process()
def scale_and_offset_values(img,scale,offset): boxm2_batch.init_process("vilScaleAndOffsetValuesProcess") boxm2_batch.set_input_from_db(0,img) boxm2_batch.set_input_float(1,scale) boxm2_batch.set_input_float(2,offset) boxm2_batch.run_process() return
def median_filter_image(img, neighborhood_radius): boxm2_batch.init_process("vilMedianFilterProcess") boxm2_batch.set_input_from_db(0, img) boxm2_batch.set_input_int(1, neighborhood_radius) boxm2_batch.run_process() (id, type) = boxm2_batch.commit_output(0) filt_img = dbvalue(id, type) return filt_img
def image_mean(img): boxm2_batch.init_process("vilImageMeanProcess") boxm2_batch.set_input_from_db(0, img) boxm2_batch.run_process() (id, type) = boxm2_batch.commit_output(0) mean_val = boxm2_batch.get_output_float(id) boxm2_batch.remove_data(id) return mean_val
def img_sum(img, plane_index=0): boxm2_batch.init_process("vilImageSumProcess") boxm2_batch.set_input_from_db(0, img) boxm2_batch.set_input_unsigned(1, plane_index) boxm2_batch.run_process() (id, type) = boxm2_batch.commit_output(0) value = boxm2_batch.get_output_double(id) return value
def convert_image(img, type="byte"): boxm2_batch.init_process("vilConvertPixelTypeProcess") boxm2_batch.set_input_from_db(0, img) boxm2_batch.set_input_string(1, type) boxm2_batch.run_process() (id, type) = boxm2_batch.commit_output(0) cimg = dbvalue(id, type) return cimg
def detect_shadow_rgb(img, threshold): boxm2_batch.init_process("vilShadowDetectionProcess") boxm2_batch.set_input_from_db(0, img) boxm2_batch.set_input_float(1, threshold) boxm2_batch.run_process() (o_id, o_type) = boxm2_batch.commit_output(0) region_img = dbvalue(o_id, o_type) return region_img
def query_cell_data(scene, cache, point): batch.init_process("boxm2CppQueryCellDataProcess") batch.set_input_from_db(0, scene) batch.set_input_from_db(1, cache) batch.set_input_float(2, point[0]) batch.set_input_float(3, point[1]) batch.set_input_float(4, point[2]) batch.run_process()
def fuse_based_orientation(device, sceneA, sceneB, opencl_cache): print("Updating Dot product") batch.init_process("boxm2OclFuseBasedOrientationProcess") batch.set_input_from_db(0, device) batch.set_input_from_db(1, sceneA) batch.set_input_from_db(2, sceneB) batch.set_input_from_db(3, opencl_cache) return batch.run_process()
def max_threshold_image(img, threshold): boxm2_batch.init_process("vilThresholdMaxImageProcess") boxm2_batch.set_input_from_db(0, img) boxm2_batch.set_input_float(1, threshold) boxm2_batch.run_process() (id, type) = boxm2_batch.commit_output(0) mask = dbvalue(id, type) return mask
def aggregate_normal_from_filter_vector(scene, cache, device, filter_vector): """ compute normals based on response of filter vector """ batch.init_process("boxm2_ocl_aggregate_normal_from_filter_vector_process") batch.set_input_from_db(0, device) batch.set_input_from_db(1, scene) batch.set_input_from_db(2, cache) batch.set_input_from_db(3, filter_vector) return batch.run_process()
def image_mean(img): boxm2_batch.init_process("vilImageMeanProcess") boxm2_batch.set_input_from_db(0,img) boxm2_batch.run_process() (id,type) = boxm2_batch.commit_output(0) mean_val = boxm2_batch.get_output_float(id) boxm2_batch.remove_data(id) return mean_val
def fuse_based_surface_density(device, sceneA, sceneB, opencl_cache): print("Fuse two models using Surface Density") batch.init_process("boxm2OclFuseSurfaceDensityProcess") batch.set_input_from_db(0, device) batch.set_input_from_db(1, sceneA) batch.set_input_from_db(2, sceneB) batch.set_input_from_db(3, opencl_cache) return batch.run_process()
def max_threshold_image(img, threshold): boxm2_batch.init_process("vilThresholdMaxImageProcess") boxm2_batch.set_input_from_db(0,img) boxm2_batch.set_input_float(1,threshold) boxm2_batch.run_process() (id,type) = boxm2_batch.commit_output(0) mask = dbvalue(id,type) return mask
def combine_eo_ir(eo_img, ir_img): boxm2_batch.init_process("vilEOIRCombineProcess") boxm2_batch.set_input_from_db(0, eo_img) boxm2_batch.set_input_from_db(1, ir_img) boxm2_batch.run_process() (id, type) = boxm2_batch.commit_output(0) img_out = dbvalue(id, type) return img_out
def get_plane(img, plane_id): boxm2_batch.init_process("vilGetPlaneProcess") boxm2_batch.set_input_from_db(0, img) boxm2_batch.set_input_unsigned(1, plane_id) boxm2_batch.run_process() (id, type) = boxm2_batch.commit_output(0) img_plane = dbvalue(id, type) return img_plane
def fuse_based_visibility(device, sceneA, sceneB, opencl_cache): print("Updating Max Vis") batch.init_process("boxm2OclFuseBasedVisibilityProcess") batch.set_input_from_db(0, device) batch.set_input_from_db(1, sceneA) batch.set_input_from_db(2, sceneB) batch.set_input_from_db(3, opencl_cache) return batch.run_process()
def median_filter_image(img, neighborhood_radius): boxm2_batch.init_process("vilMedianFilterProcess") boxm2_batch.set_input_from_db(0,img) boxm2_batch.set_input_int(1,neighborhood_radius) boxm2_batch.run_process() (id,type) = boxm2_batch.commit_output(0) filt_img = dbvalue(id,type) return filt_img
def img_sum(img, plane_index=0): boxm2_batch.init_process("vilImageSumProcess") boxm2_batch.set_input_from_db(0,img) boxm2_batch.set_input_unsigned(1,plane_index) boxm2_batch.run_process() (id,type) = boxm2_batch.commit_output(0) value = boxm2_batch.get_output_double(id) return value
def get_plane(img, plane_id): boxm2_batch.init_process("vilGetPlaneProcess"); boxm2_batch.set_input_from_db(0, img); boxm2_batch.set_input_unsigned(1, plane_id); boxm2_batch.run_process(); (id, type) = boxm2_batch.commit_output(0); img_plane = dbvalue(id, type); return img_plane;
def convert_image(img, type="byte") : boxm2_batch.init_process("vilConvertPixelTypeProcess"); boxm2_batch.set_input_from_db(0, img); boxm2_batch.set_input_string(1, type); boxm2_batch.run_process(); (id,type) = boxm2_batch.commit_output(0); cimg = dbvalue(id,type); return cimg;
def detect_shadow_rgb(img,threshold) : boxm2_batch.init_process("vilShadowDetectionProcess"); boxm2_batch.set_input_from_db(0,img) boxm2_batch.set_input_float(1, threshold); boxm2_batch.run_process(); (o_id,o_type) = boxm2_batch.commit_output(0); region_img = dbvalue(o_id,o_type); return region_img;
def combine_eo_ir(eo_img,ir_img): boxm2_batch.init_process("vilEOIRCombineProcess") boxm2_batch.set_input_from_db(0,eo_img) boxm2_batch.set_input_from_db(1,ir_img) boxm2_batch.run_process() (id,type) = boxm2_batch.commit_output(0) img_out = dbvalue(id,type) return img_out
def arf_next_frame(rawStream) : boxm2_batch.init_process("bilArfReadFrameProcess") boxm2_batch.set_input_from_db(0,rawStream); boxm2_batch.run_process(); (id, type) = boxm2_batch.commit_output(0); img = dbvalue(id,type); (id, type) = boxm2_batch.commit_output(1); time = boxm2_batch.get_output_unsigned(id); return img, time
def arf_next_frame(rawStream): boxm2_batch.init_process("bilArfReadFrameProcess") boxm2_batch.set_input_from_db(0, rawStream) boxm2_batch.run_process() (id, type) = boxm2_batch.commit_output(0) img = dbvalue(id, type) (id, type) = boxm2_batch.commit_output(1) time = boxm2_batch.get_output_unsigned(id) return img, time
def query_cell_brdf(scene, cache, point, model_type): batch.init_process("boxm2CppQueryCellBrdfProcess") batch.set_input_from_db(0, scene) batch.set_input_from_db(1, cache) batch.set_input_float(2, point[0]) batch.set_input_float(3, point[1]) batch.set_input_float(4, point[2]) batch.set_input_string(5, model_type) batch.run_process()