Я использую окно, которое перебирает изображение сверху вниз. Вычисление энтропии выполняется и добавляется окно, когда энтропия пересекает определенный порог. Проблема в том, что я не могу использовать этот метод по отношению к другим изображениям. Из-за порогового механизма планы этажей не разделены должным образом. Ниже приведен код, с которым я экспериментирую:
Код: Выделить всё
window = 30
stary_y = 0
end_y = 0 + window
img = img[start_height:end_height,:]#.copy()
iteration = int(img.shape[0] / window)
i = 0
is_stack = False
start = 0
end = 0
base = numpy.zeros((1, img.shape[1]), dtype = img.dtype)
c = []
while i < iteration:
prob = numpy.histogram(img[stary_y:end_y, :], bins = 256, range = (0, 256), density = True)[0]
ent = scipy.stats.entropy(prob, base = 2)
if ent > 0.25:
if is_stack == False:
start = i * window
is_stack = True
base = numpy.concatenate([base, img[stary_y:end_y, :]])
c.append([i, is_stack])
else:
is_stack = False
if is_stack == False and base.shape[0] > 32:
end = window * i
c.append([i, is_stack])
c = []
start, end = 0, 0
plt.imshow(base, cmap = "gray")
plt.show()
base = numpy.zeros((1, img.shape[1]), dtype = img.dtype)
else:
c = []
start, end = 0, 0
base = numpy.zeros((1, img.shape[1]), dtype = img.dtype)
stary_y, end_y = stary_y + window, end_y + window
i += 1

является входными данными, и оно должно выводить

. Концепция, которую я применил, заключается в создании сегментов

. Сегмент 4 содержит 2 плана этажей, что неожиданно, его следует разбить на 2 изображения. Сегменты 2 и 6 не являются планами этажей. Я понимаю, что эти проблемы связаны с размером окна и порогом. Какой подход мне следует использовать для создания правильно отдельных планов этажей?
Подробнее здесь: https://stackoverflow.com/questions/784 ... ing-python