İkili maske (gri = şekil, siyah = arka plan) tarafından tanımlanan rasgele bir şeklim var.
Ben sadece gri piksel içeren bu mümkün olan en büyük dikdörtgen bulmak istiyorum (bu dikdörtgen sarı resimde):
Şekil her zaman "tek parça" dır, ancak zorunlu olarak dışbükey değildir (şeklin sınırındaki tüm nokta çiftleri, şekilden geçen düz bir çizgi ile birleştirilemez).
Bazen bu tür "maksimum dikdörtgenlerin" birçoğu vardır ve daha sonra aşağıdaki gibi başka kısıtlamalar getirilebilir:
- Dikdörtgenin merkezi, şeklin kütle merkezine (veya görüntünün merkezine) en yakın olması
- Önceden tanımlanmış bir orana en yakın en boy oranına sahip dikdörtgen alma (örn. 4: 3)
Algoritma hakkında ilk düşüncem şudur:
- Şeklin mesafe dönüşümünü hesaplayın ve kütle merkezini bulun
- Yalnızca şeklin piksellerini içerirken kare alanı büyütün
- Dikdörtgeni (başlangıçta bir kare) yalnızca şeklin piksellerini içerecek şekilde genişlik veya yükseklikte büyütün.
Ancak, böyle bir algoritmanın yavaş olacağını ve optimal bir çözüm getirmeyeceğini düşünüyorum.
Herhangi bir öneri?