Průnik v tomto kontextu znamená vzít každý “řádkový” interval a každý “sloupcový” interval a pro každý pár (row_int, col_int) vytvořit obdélník:
def intersect_intervals(row_ints, col_ints):
regions = []
for r_start, r_end in row_ints:
if r_start is None: continue
for c_start, c_end in col_ints:
if c_start is None: continue
regions.append((c_start, r_start, c_end + 1, r_end + 1))
return regions
# příklad použití:
dark_row_ints = shadow_ranges["small_bl_row"] # může být list of tuples
dark_col_ints = shadow_ranges["small_bl_col"]
# zajistíš, že shadow_ranges vrací list intervalů, ne jen jeden:
# results["small_bl_row"] = [(r1,r2), (r3,r4), …]
# teprve pak
bl_dark_regions = intersect_intervals(dark_row_ints, dark_col_ints)
Každý tuple (x1, y1, x2, y2)
pak použiješ k oříznutí:
for idx, (x1, y1, x2, y2) in enumerate(bl_dark_regions, start=1):
crop = bl_bw.crop((x1, y1, x2, y2))
crop.save(dbg_bl / f"region_bl_dark_{idx}.png")
A obdobně pro světlé intervaly (small_bl_gray
), i pro small_tr
.
Žádné komentáře:
Okomentovat