11 Stimmen

Wie zeigt man Punkte auf einem Bild in Matlab an?

Ich habe einige Pixel-Punkte, sagen wir p1(1,1) und p2(1,10).......und so weiter

Ich möchte diese Punkte auf dem Bild in beliebiger Farbe anzeigen. Wie mache ich das?

6voto

Doresoom Punkte 7370

Die plot Dokumentation von MATLAB ist ziemlich umfassend.

LineSpec Eigenschaften listen die Syntax für verschiedene Stile von Linien, Farben und Punkten auf.

Wenn Sie mehr Optionen möchten, sehen Sie sich LineSeries Properties an. Sie können Eigenschaften wie Marker (Stil), MarkerEdgeColor, MarkerFaceColor und MarkerSize festlegen.

Sie können auch RGB Triplets verwenden, um Farben zu definieren, wenn Sie von rgbcmykw abweichen möchten.

Beispiele:

Zeichnen Sie einen einzelnen Punkt (3,4) mit einem orangefarbenen fünfzackigen Sternmarker:

p=[3,4];
plot(p(1),p(2),'Marker','p','Color',[.88 .48 0],'MarkerSize',20)

Zeichnen Sie ein Array von Punkten mit grünen 'o' Markern:

p=round(10*rand(2,10));
plot(p(1,:),p(2,:),'go')

EDIT: Wenn Sie alle Ihre Punkte als p1=[x1,y1], p2=[x2,y2] usw. gespeichert haben, versuchen Sie sie zuerst in eine 2xN Matrix umzustrukturieren. Generieren Sie entweder die Punkte neu oder wenn Sie sie bereits als einzelne Paare haben, verwenden Sie

p=[p1;p2;p3]'; %# Die [;] Notation fügt vertikal zu Nx2 zusammen,
               %# und das ' transponiert zu einem 2xN
plot(p(1,:),p(2,:),'go')

Oder, wenn Sie eine Vielzahl von Punkten als einzelne Paare gespeichert haben, sagen wir bis zu p1000 oder so, könnten Sie eval verwenden (Zucken).

p=[]; %# initialisieren p
for n=1:nPoints %# wenn Sie 1000 Punkte haben, sollte nPairs 1000 sein
eval(['p(:,n)=p',num2str(n)],''); %#führt p(:,n)=pn' für jeden nPunkt aus
end

5voto

Peter Punkte 120325

Sie können einfach den Plot verwenden:

plot(p1(1), p1(2), 'ko');  % Kleiner Kreispunkt in Schwarz.
plot(p1(1), p1(2), 'r.');  % Kleiner Punkt in Rot.

4voto

Giuseppe Galano Punkte 8724

Verwenden Sie das Bild, halten Sie es fest und plotten Sie es.

base_points = [142.3125,93.4375; 169.4375,176.0625];
image(fixed); colormap(gray(256)); axis image;
hold on;
plot(base_points(:,1),base_points(:,2),'go');

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X