Tôi có một hình dạng tùy ý được xác định bởi mặt nạ nhị phân (xám = hình dạng, đen = nền).
Tôi muốn tìm một hình chữ nhật lớn nhất có thể chỉ chứa các pixel màu xám (hình chữ nhật như vậy được in màu vàng):
Hình dạng luôn luôn là "một mảnh" nhưng nó không nhất thiết phải lồi (không phải tất cả các cặp điểm trên ranh giới của hình dạng có thể được kết nối bằng một đường thẳng đi qua hình dạng).
Đôi khi nhiều "hình chữ nhật tối đa" như vậy tồn tại và sau đó các ràng buộc tiếp theo có thể được đưa ra, chẳng hạn như:
- Lấy hình chữ nhật có tâm gần nhất với tâm khối lượng (hoặc tâm hình ảnh)
- Lấy hình chữ nhật có tỷ lệ khung hình gần nhất với tỷ lệ được xác định trước (nghĩa là 4: 3)
Suy nghĩ đầu tiên của tôi về thuật toán là như sau:
- Tính toán biến đổi khoảng cách của hình dạng và tìm tâm khối lượng của nó
- Tăng diện tích hình vuông trong khi nó chỉ chứa các pixel của hình dạng
- Phát triển hình chữ nhật (ban đầu là một hình vuông) về chiều rộng hoặc chiều cao trong khi nó chỉ chứa các pixel của hình dạng.
Tuy nhiên, tôi nghĩ thuật toán như vậy sẽ chậm và sẽ không dẫn đến giải pháp tối ưu.
Bất kỳ đề xuất?