2016-10-18 4 views
2

Ich versuche, einen Pfeil auf einem Bild in MATLAB zwischen zwei Pixeln zu zeichnen: [x0, y0] und [x1, y1].Zeichnen eines Pfeils auf ein Bild - MATLAB

Ich habe versucht, Annotationsfunktion zu verwenden. Das Problem besteht darin, dass die Funktion als Eingabe x, y-Werte verwendet, die Koordinaten auf der Figur darstellen, anstatt auf dem Bild selbst.

Weiß jemand, wie kann ich einen Pfeil zwischen zwei Pixeln in einem Bild zeichnen?

Beispiel

imshow(imread('peppers.png'));hold on; 

Ich möchte einen blauen Pfeil von Pixel (1,1) zum Pixel (200.200) erzeugen, so dass es so etwas wie dieses (nur in blau statt schwarz) aussehen sollte :

enter image description here

Dank!

+0

Siehe 'coordinate2normalized' Helferfunktion von [diese Antwort] (http://stackoverflow.com/questions/33852712/add -Pfeile-in-Phase-Space-Portrait-Matlab/33899451 # 33899451) oder [Eins] (https://www.mathworks.com/matlabcentral/fileexchange/54254-coord2norm) oder [mehr] (https: // www .mathworks.com/matlabcentral/fileexchange/10656-data-space-to-figure-units-conversion) der [vielen Optionen des MATLAB File Exchange] (https://www.mathworks.com/matlabcentral/fileexchange/?search_submit = Datei exchange & query = Normalisieren + Annotation & Term = Normalisieren + Annotation). – excaza

Antwort

3

Sie einfach könnte die quiver -Funktion verwenden:

figure; 
imshow(imread('peppers.png'));hold on; 
quiver(0,0,200,200,0) 

enter image description here

+0

Danke! Gibt es eine Möglichkeit, die Größe des Kopfes größer zu machen? Wenn der Pfeil kurz ist (zum Beispiel von (0,0) bis (5,5)) ist der Kopf zu klein, um gesehen zu werden – drorco

+1

@Ibezito 'quiver (0,0,200,200,0, 'MaxHeadSize', 10)' –

+0

Sie haben viele Optionen [hier] (https://se.mathworks.com/help/matlab/ref/quiverseries-properties.html). –

Verwandte Themen