Untitled

 avatar
unknown
plain_text
a year ago
1.1 kB
5
Indexable
import numpy as np

def calculate_bounding_box(x, y, L, max_width, max_height):
    # Calculate half of the length L
    half_L = L // 2
    
    # Initialize corners of the bounding box
    top_left = [x - half_L, y - half_L]
    top_right = [x + half_L, y - half_L]
    bottom_left = [x - half_L, y + half_L]
    bottom_right = [x + half_L, y + half_L]
    
    # Convert corners into a NumPy array for easier manipulation
    corners = np.array([top_left, top_right, bottom_left, bottom_right])
    
    # Clip the corners to ensure they are within the image boundaries
    # np.clip(array, min, max)
    corners[:, 0] = np.clip(corners[:, 0], 0, max_width)  # Clip x coordinates
    corners[:, 1] = np.clip(corners[:, 1], 0, max_height) # Clip y coordinates
    
    return corners

# Example usage
x, y = 150, 150   # Center coordinate of the box
L = 100           # Length of the bounding box
max_width = 300   # Width of the image
max_height = 300  # Height of the image

corners = calculate_bounding_box(x, y, L, max_width, max_height)
print("Corners of the bounding box:")
print(corners)
Editor is loading...
Leave a Comment