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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 combine_planes(img_red, img_green, img_blue): boxm2_batch.init_process("vilCombinePlanesProcess"); boxm2_batch.set_input_from_db(0, img_red); boxm2_batch.set_input_from_db(1, img_green); boxm2_batch.set_input_from_db(2, img_blue); boxm2_batch.run_process(); (id, type) = boxm2_batch.commit_output(0); img_out = dbvalue(id, type); return img_out;
def mask_image_using_id(img, id_img, input_id): boxm2_batch.init_process("vilMaskImageUsingIDsProcess"); boxm2_batch.set_input_from_db(0, img); boxm2_batch.set_input_from_db(1, id_img); boxm2_batch.set_input_unsigned(2, input_id); boxm2_batch.run_process(); (id, type) = boxm2_batch.commit_output(0); masked_img = dbvalue(id, type); return masked_img;
def truncate_image(img, min_value, max_value): boxm2_batch.init_process("vilTruncateImageProcess") boxm2_batch.set_input_from_db(0, img) boxm2_batch.set_input_float(1, min_value) boxm2_batch.set_input_float(2, max_value) boxm2_batch.run_process() (id, type) = boxm2_batch.commit_output(0) img_out = dbvalue(id, type) return img_out
def binary_img_op(img1, img2, operation="sum"): boxm2_batch.init_process("vilBinaryImageOpProcess") boxm2_batch.set_input_from_db(0,img1) boxm2_batch.set_input_from_db(1,img2) boxm2_batch.set_input_string(2,operation) boxm2_batch.run_process() (id,type) = boxm2_batch.commit_output(0) out = dbvalue(id, type); return out
def mask_image_using_id(img, id_img, input_id): boxm2_batch.init_process("vilMaskImageUsingIDsProcess") boxm2_batch.set_input_from_db(0, img) boxm2_batch.set_input_from_db(1, id_img) boxm2_batch.set_input_unsigned(2, input_id) boxm2_batch.run_process() (id, type) = boxm2_batch.commit_output(0) masked_img = dbvalue(id, type) return masked_img
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 undistort_image(img, param_file, iters): boxm2_batch.init_process("vilUndistortImageProcess") boxm2_batch.set_input_from_db(0, img) boxm2_batch.set_input_string(1, param_file) boxm2_batch.set_input_int(2, iters) boxm2_batch.run_process() (o_id, o_type) = boxm2_batch.commit_output(0) out_img = dbvalue(o_id, o_type) return out_img
def binary_img_op(img1, img2, operation="sum"): boxm2_batch.init_process("vilBinaryImageOpProcess") boxm2_batch.set_input_from_db(0, img1) boxm2_batch.set_input_from_db(1, img2) boxm2_batch.set_input_string(2, operation) boxm2_batch.run_process() (id, type) = boxm2_batch.commit_output(0) out = dbvalue(id, type) return out
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()
def arf_stream(file_path) : boxm2_batch.init_process("bilCreateArfImageIstreamProcess") boxm2_batch.set_input_string(0,file_path); boxm2_batch.run_process(); (id, type) = boxm2_batch.commit_output(0); stream = dbvalue(id, type); (id, type) = boxm2_batch.commit_output(1); numImgs = boxm2_batch.get_output_int(id); return stream, numImgs
def combine_planes(img_red, img_green, img_blue): boxm2_batch.init_process("vilCombinePlanesProcess") boxm2_batch.set_input_from_db(0, img_red) boxm2_batch.set_input_from_db(1, img_green) boxm2_batch.set_input_from_db(2, img_blue) boxm2_batch.run_process() (id, type) = boxm2_batch.commit_output(0) img_out = dbvalue(id, type) return img_out
def arf_stream(file_path): boxm2_batch.init_process("bilCreateArfImageIstreamProcess") boxm2_batch.set_input_string(0, file_path) boxm2_batch.run_process() (id, type) = boxm2_batch.commit_output(0) stream = dbvalue(id, type) (id, type) = boxm2_batch.commit_output(1) numImgs = boxm2_batch.get_output_int(id) return stream, numImgs
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