2012-04-04 8 views
1

Ich möchte eine Linie zwischen Punkt1 und Punkt2 auch um einen Winkel (zum Beispiel 15 Grad zur Achse x) auf einem Bild oder Matrix zeichnen. Ich möchte nicht nur die Linie auf dem Bild anzeigen (wie bei Plot). Ich möchte die Pixelwerte tatsächlich ändern, so dass ich das Bild speichern und es mit der Linie immer noch dorthin laden kann.Zeichnen einer Linie nach Winkel auf einem Bild/Matrix in Matlab

Danke

+1

Dubletten: [MATLAB: Zeichnen einer Linie über einem Schwarz-Weiß-Bild] (http://stackoverflow.com/q/2464637/52738) [Wie erstelle ich eine Bildmatrix mit einer Linie, die in es in MATLAB?] (http://stackoverflow.com/q/1940833/52738) – gnovice

Antwort

1

Wenn Sie die Bildverarbeitung Toolbox haben, können Sie eine Linie zwischen zwei beliebigen Punkten ziehen (entweder interaktiv oder durch Angabe) die Funktion imline() verwenden. Sie können die Zeile dann mit createMask() speichern. Dadurch erhalten Sie ein Binärbild mit nur der Linie. Sie können dann die Pixel im Originalbild leicht subtrahieren, hinzufügen oder ändern und speichern.

I = im2double(imread('pout.tif'));  %Read Image 
imshow(I,[]) 
h = imline(gca,[10 100], [80 100]);  %Create line 
Line = createMask(h);      %Extract binary line 
I = I + Line;        %Add line to orignal image 
+0

Hallo Ghaul ... Danke für deinen Vorschlag. leider habe ich die createMask() Funktion nicht. irgendeine Alternative dafür? – Wahyu