Как показать точки на изображении в Matlab? - PullRequest
10 голосов
/ 01 октября 2010

у меня есть несколько точек пикселей, скажем, p1 (1,1) и p2 (1,10) ....... и так далее

Я хочу отобразить эти точки на изображении в любом цвете. как это сделать?

Ответы [ 3 ]

6 голосов
/ 01 октября 2010

MATLAB plot документация довольно полная.

В свойствах

LineSpec приведен синтаксис для различных стилей линий, цветов и точек.

Если вам нужны дополнительные параметры, см. Свойства LineSeries . Вы можете указать такие свойства, как Marker (стиль), MarkerEdgeColor, MarkerFaceColor и MarkerSize.

Вы также можете использовать RGB-триплеты для определения цвета, если вы хотите отклониться от rgbcmykw.

Примеры:

Нарисуйте одну точку (3,4) с оранжевой пятиконечной звездочкой:

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

Построить массив точек с зелеными маркерами 'o':

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

РЕДАКТИРОВАТЬ: Если вы сохранили все свои очки как p1=[x1,y1], p2=[x2,y2] и т. Д., Попробуйте сначала реорганизовать их в матрицу 2xN. Либо заново сгенерируйте очки, либо, если вы уже получили их как одиночные пары, используйте

p=[p1;p2;p3]'; %# the [;] notation vertically concatenates into Nx2, 
               %# and the ' transposes to a 2xN
plot(p(1,:),p(2,:),'go')

Или, если у вас есть тонна точек, хранящихся как одиночные пары, скажем, до p1000 или около того, вы могли бы использовать eval ( cringe ).

p=[]; %# initialize p
for n=1:nPoints %# if you've got 1000 points, nPairs should be 1000
eval(['p(:,n)=p',num2str(n)],''); %#executes p(:,n)=pn' for each nPoint
end
4 голосов
/ 01 октября 2010

Вы можете просто использовать сюжет:

plot(p1(1), p1(2), 'ko');  % Small circle point in black.
plot(p1(1), p1(2), 'r.');  % Small dot in red.
3 голосов
/ 14 июня 2013

Используй изображение, держись и черти.

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');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...