def main(conn, argv): parser = argparse.ArgumentParser() parser.add_argument("image", help="Image ID") args = parser.parse_args(argv) image_id = args.image data = swc.read( "20200628-ftp/RL_35_guassian_4_4_80.tif_x94_y327_z241_app2_(GSBT).swc" ).data_block # img_name = 'FADU_tumour_Lectin_substack_deconvolved_RL_35iters_guassian_psf_4_4_80.tif' image = conn.getObject("Image", image_id) # delete existing ROIs roi_service = conn.getRoiService() result = roi_service.findByImage(image.id, None) roi_ids = [roi.id.val for roi in result.rois] if roi_ids: print("Deleting ROIs...") conn.deleteObjects("Roi", roi_ids, wait=True) size_y = image.getSizeY() paths = parse_swc(data, size_y) red_int = int.from_bytes([255, 0, 0, 255], byteorder="big", signed=True) for count, path in enumerate(paths): points = [] for zyx in path: z, y, x = zyx point = PointI() point.x = rdouble(x) point.y = rdouble(y) point.theZ = rint(round(z)) point.strokeColor = rint(red_int) points.append(point) print(f"{count}/{len(paths)} Creating ROI with {len(points)} points") create_roi(image, points)