Ich habe ein Bild mit weißen Flecken überall. Jetzt möchte ich einen Marker auf jeden Punkt basierend auf bestimmten Koordinaten und Kontrollen setzen. Jetzt ist mein Problem, ich möchte nicht zu viele Marker auf einem bestimmten "Blob" von weißen Flecken clustern, die mehr als ein Pixel aufnehmen. Meine Arbeit besteht darin, zu überprüfen, ob mein vorheriger Marker und mein aktueller Standort in der Nähe sind. Dies führt jedoch dazu, dass viele unabhängige weiße Flecken aufgrund der Nähe fehlen, selbst wenn es nicht notwendigerweise nur ein Fleck ist.Markierung in MATLAB nicht möglich
Hier ist mein aktueller Code:
a = find(overlap == 1); %overlap is a 1040 by 1392 binary matrix
prev_coord = [1 1];
for i=1:size(a)
c = mod(a(i), 1040);
r = floor(a(i)/1040);
X = [prev_coord; r c];
if(pdist(X, 'euclidean') > prox)
if(img(r, c) > 1)
gray = insertMarker(gray, [r c], 'x', 'color', 'red', 'size', 15);
else
gray = insertMarker(gray, [r c], 'x', 'color', 'white', 'size', 15);
end
end
prev_coord = [r c];
end
Wenn prox
eine sehr kleine Zahl wie 50 gleich, mein Bild sieht wie folgt aus:
Wenn jedoch prox
eine große Zahl wie 120, es sieht so aus:
Irgendwelche Ideen, wie man das umgeht?
Ich würde überprüfen, ob 2 Koordinaten gehören zu einem Blob mit verbundenen Komponenten Methoden, wie zum Beispiel 'bwlabel', es ist robuster als der Abstand zwischen ihnen. – user2999345