Итак, я изучаю обработку изображений в python, и я наткнулся на упражнение, которое мне трудно решить. Ему дано аэрофотоснимок:
Цель состоит в том, чтобы индивидуализировать все крыши на одном изображении, оставив остальную часть (фон) в черном цвете. В упражнении предлагается использовать разницу между полосами rgb, а затем применить пороговый метод, который использует точку, соответствующую большему расстоянию от линии, соединяющей первый ненулевой индекс частоты и значимый пик гистограммы (метод максимального расстояния).
В упражнении также показан пример того, каким должен быть конечный результат:
Вот что я пробовал до сих пор:
from imageio import imread
import numpy as np
Imagem2 = imread("ik02.tif")
r2 = Imagem2[:,:,0]
g2 = Imagem2[:,:,1]
b2 = Imagem2[:,:,2]
r_b = r2-b2
rbh, rb = np.histogram(r_b, bins=256, range=(0, 256))
Из наблюдения за гистограммой можно различить два темных пика, примерно 0 для дорог и 3 для домов? Может быть, вырезать значения ниже и выше от дома?
Операция (красная полоса - синяя полоса) дает мне хороший результат, я просто не знаю, как индивидуализировать дома. Вот результат:
(красная полоса - синяя полоса)
Ценим любую помощь!