diff --git a/src/ar_sandbox/examples/examples.py b/src/ar_sandbox/examples/examples.py index 4ff6b724c56447b47898bac3970134b6a17183c3..9b27dad26afb1788fde781d2bde6412a149b06b0 100644 --- a/src/ar_sandbox/examples/examples.py +++ b/src/ar_sandbox/examples/examples.py @@ -9,10 +9,26 @@ COLORS = [ ] class LevelDisplay(): - colormap = COLORS - + @staticmethod def get_color(depth_matrix, frame, draw_lines=True, colormap=COLORS): + """ + Given a depth matrix between 0-1, return a color from a given colormap. + The colormap is a list of tuples containing the depth value, and the + color for this level : + (depth_value, [RedVal, GreenVal, BlueVal]) + + The colormap should at least contain a color for the depths 0 and 1. + See COLORS for an example colormap. + + Arguments: + depth_matrix : Normalized 1 channel numpy matrix + frame: Unused. The frame captured by the camera + draw_line: Should line be drawn between levels ? + colormap: Override the default colormap. + Return: + A 3 channel matrix in BGR frame of the same size as depth_matrix. + """ points = np.array([c[0] for c in colormap]) r = [c[1][2] for c in colormap] g = [c[1][1] for c in colormap] @@ -30,6 +46,19 @@ class LevelDisplay(): @staticmethod def draw_lines(depth, points, width=0.025, between_levels=False): + """ + Given the depth matrix and a list of points, return a mask for every + value near the points. If between_levels is set to True, mask in + between the point instead of on the point. + + Arguments: + depth: A depth matrix + points: A list of float values + width: The 'width' of the lines to be drawn. Will mask + width/2 + Return: + A mask representing the lines. + """ lines = [] mask = np.ma.make_mask(np.zeros(depth.shape), shrink=False) if between_levels: