Come disegnare una linea su un’immagine in matlab?

Ho due punti permette di dire:

  • P(x,y) [il punto si trova sulla cima di image]
  • P'(x’,y’) [punto si trova al fondo della image]

Ora voglio disegnare una linea tra questi due punti….e la linea dovrebbe apparire l’immagine significa che deve essere visibile.

come fare questo????

InformationsquelleAutor chee | 2010-08-20



6 Replies
  1. 16

    Il modo più semplice per tracciare una linea su un’immagine è quello di utilizzare TRAMA.

    %# read and display image
    img = imread('autumn.tif');
    figure,imshow(img)
    
    %# make sure the image doesn't disappear if we plot something else
    hold on
    
    %# define points (in matrix coordinates)
    p1 = [10,100];
    p2 = [100,20];
    
    %# plot the points.
    %# Note that depending on the definition of the points,
    %# you may have to swap x and y
    plot([p1(2),p2(2)],[p1(1),p2(1)],'Color','r','LineWidth',2)

    Se si desidera un colore diverso, modificare la lettera a qualsiasi rgbcmykw, o utilizzare triplette RGB (rosso è [1 0 0]). Avere uno sguardo al lineseries proprietà per ulteriori opzioni di formattazione.

    • e se voglio trovare la pendenza di questa linea????
    • chee: a) che è una questione diversa, b) usare il punto-pendenza formula per una linea.
  2. 9

    Partire con la versione R2014a è possibile utilizzare insertShape come segue:

    img = insertShape(img,'Line',[x1 y1 x2 y2],'LineWidth',2,'Color','blue');

    È anche possibile disegnare più linee con lo stesso comando, ma x1,x2,y2,y3 deve essere vettori colonna e ogni riga rappresenta una nuova linea.

    insertShape permette anche di disegnare rettangoli, cerchi e poligoni.

    • Questo funziona solo se si dispone di Computer Vision casella degli strumenti. Si può suggerire un metodo senza usare?
    • Come utilizzare le linee tratteggiate?
  3. 6

    Come questo:

    figure;
    hold on;
    imagesc(img);
    line([x1,x2],[y1,y2],'Color','r','LineWidth',2)
    hold off

    Dove y è il “down” direzione e x è la “giusta” direzione nell’immagine. Modificare il colore e la larghezza necessaria per essere visibile.

  4. 1
    load clown
    image(X)
    colormap(map)
    c = size(X,2)
    mid = round(c/2)
    X(:,mid) = 1
    image(X)
    • Se è un’immagine a colori, si dovrebbe utilizzare X(:,mid,:) = [1 1 1];.
    • e se voglio trovare la pendenza di questa linea di????????
    • Si tratta di una linea verticale. La pendenza è infinito.
    • Sarebbe facile (non è difficile) ma più divertente per disegnare una linea opposta a colori (RGB) dell’immagine di sfondo di colore lungo la linea…
  5. 1

    Se si dispone di Computer Vision casella degli strumenti. Si può semplicemente utilizzare shapeInserter.

    Check out http://www.mathworks.com/help/vision/ref/vision.shapeinserter-class.html

    Per specificare le linee, è necessario utilizzare la riga riportata di seguito. In caso contrario, si potrebbe ottenere un rettangolo

    Esempio:

    %draw a line from point (100,100) to (200,200) on an image saved as nextFrame
    
    line = int32([100 100  200 200]);
    shapeInserter = vision.ShapeInserter('Shape', 'Lines');
    nextFrame = step(shapeInserter, nextFrame, line);

    Dare un’occhiata alla proprietà per vedere che cosa si può modificare.

Lascia un commento