File size: 1,556 Bytes
5d92054
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import cv2
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as patches


def plot_depth_with_boxes(depth_map, depth_data):
    """
    Plots the depth map with bounding boxes overlayed.
    
    Args:
        depth_map (numpy.ndarray): The depth map to visualize.
        depth_data (pandas.DataFrame): DataFrame containing bounding box coordinates, depth statistics, and class labels.
    """
    # Normalize the depth map for better visualization
    depth_map_normalized = cv2.normalize(depth_map, None, 0, 255, cv2.NORM_MINMAX).astype(np.uint8)

    # Create a figure and axis
    fig, ax = plt.subplots(1, figsize=(12, 6))

    # Display the depth map
    ax.imshow(depth_map_normalized, cmap='plasma')  # You can change the colormap as desired
    ax.axis('off')  # Hide the axes

    # Loop through the DataFrame and add rectangles
    for index, row in depth_data.iterrows():
        xmin, ymin, xmax, ymax = row[['xmin', 'ymin', 'xmax', 'ymax']]
        class_label = row['class']
        score = row['depth_mean']  # or whichever statistic you prefer to display

        # Create a rectangle patch
        rect = patches.Rectangle((xmin, ymin), xmax - xmin, ymax - ymin, linewidth=2, edgecolor='yellow', facecolor='none')

        # Add the rectangle to the plot
        ax.add_patch(rect)

        # Add a text label
        ax.text(xmin, ymin - 5, f'{class_label}: {score:.2f}', color='white', fontsize=12, weight='bold')

    plt.title('Depth Map with Object Detection Bounding Boxes', fontsize=16)
    plt.show()