Mit einem Startpunkt P = (x, y) können Sie imfill verwenden, um die entsprechende verbundene Komponente und die Kombination von max und imfind zu finden, um den niedrigsten Punkt darin zu finden.
%reads the image
I = imread('<your path>');
%sets an input point. For example: (250,100)
x = 100; y=250;
%Find the connected component of the given input point
BW2 = imfill(I,[y x]);
diffMat = BW2~=I;
%finds the minimal x and y indices of this connected component
[Y, X] = ind2sub(size(diffMat),find(diffMat));
maxInd = find(Y==max(Y),1,'first');
%prints the result
Y(maxInd)
X(maxInd)
die folgende Eingabe gegeben:
das Ergebnis:
Y=313, X=304
Beachten Sie, dass dieser Code nur einen Punkt als Tal findet. Wenn Sie mehr Punkte finden möchten, können Sie diesen Parameter aus der Suchfunktion auslassen und alle Talpunkte erhalten.
Sie meine die niedrigste Y-Koordinate? Bitte zeigen Sie uns, was Sie bisher haben. – GameOfThrows
ja, ich meine am niedrigsten. Es tut uns leid. Ich habe keinen Code, ich bin neu in der Bildverarbeitung und ich weiß nicht, wie ich anfangen soll. –