Я ищу способ, который я могу использовать для обрезки нескольких графиков автоматически. Без необходимости вручную устанавливать размер коробки для обрезки.Smart cropping image
мне нужно подрезать список спектрограммы участков, как эти,
В котором мне нужно только фактический сюжет, и больше ничего. Просто сюжет.
В настоящее время я обрезаю его так.
print "Hstacked Image"
images1 = Image.open(spectogram_path_train+"/"+name+"_plot_static_conv.png")
images2 = Image.open(spectogram_path_train+"/"+name+"_plot_delta_conv.png")
images3 = Image.open(spectogram_path_train+"/"+name+"_plot_delta_delta_conv.png")
box = (100,55,592,496)
cropped1 = images1.crop(box)
cropped2 = images2.crop(box)
cropped3 = images3.crop(box)
width1, height1 = cropped1.size
width2, height2 = cropped2.size
width3, height3 = cropped3.size
sum_width = width1 + width2 + width3
max_height = max(height1,height2,height3)
new_im = Image.new('RGB',(sum_width,max_height))
x_offset = 0
for im in [cropped1,cropped2,cropped3]:
new_im.paste(im,(x_offset,0))
x_offset+=im.size[0]
new_im.save(spectogram_path_train+"/"+name+"_plot_hstacked.png")
Эти значения коробки устанавливаются кадрировать изображение .. левый и нижний параметр коробки всегда одинаков для каждого участка, но право может отличаться, который должен быть автоматически определяется для каждого участка.
Я ищу умную культуру, способную удалить все, кроме цветного участка.
Если вы не можете найти какой-либо специализированный сторонний модуль, который сделает что-то подобное, вы можете сделать это самостоятельно, просмотрев значения пикселей, чтобы определить, где лежат верхний и правый края. Если изображения сюжета все схожи по сравнению с белым фоном, вы должны иметь возможность найти границу путем поиска справа от левого местоположения до тех пор, пока не начнется несколько фоновых пикселей, а также вверх для верхнего края. – martineau
Ох .. Извините. Я решил это так, как предложил @martineau. Решение было довольно ... – Loser