Задача состоит в том, чтобы связать центроиды, которые у меня есть, используя regionprops
по горизонтали в строках, а затем предсказать отсутствующие объекты.Подключить центроиды по горизонтали и обнаружить отсутствующие объекты
Вот образ, который у меня есть:
Все центроиды в пределах определенного у-координату диапазон должен быть подключен. После этого я хочу предсказать недостающие объекты. Например, на зеленой линии на изображении выше должно быть больше объектов/центроидов.
Мой код до сих пор:
BW = rgb2gray(imread('noise_removal_single_25_cropped.png'));
props = regionprops(im2bw(BW), 'Centroid');
centroids = cat(1, props.Centroid);
[B,L] = bwboundaries(BW,'noholes');
imshow(label2rgb(L, @jet, [.5 .5 .5]))
hold on
for k = 1:length(B)
boundary = B{k};
plot(boundary(:,2), boundary(:,1), 'w', 'LineWidth', 2)
end
plot(centroids(:,1),centroids(:,2), 'b*')
plot(centroids(:,1),centroids(:,2), 'k-')
код соединяет все центроиды вертикально, и я понятия не имею, как обнаружить недостающие объекты/центроиды (возможно, на основе длины линии)?
где вы соединяете центроиды по вертикали? Я вижу, что вы рисуете границы и центроиды в своем коде. одним из способов было бы найти все точки ближайших соседей. недостающие точки приведут к тому, что соседи будут иметь большее расстояние, чем обычно. конечно, у вас есть преимущество, зная, что ваши точки группируются по горизонтали https://en.wikipedia.org/wiki/Nearest_neighbor_search – Piglet