У меня есть некоторые пиксельные точки, скажем, p1 (1,1) и p2 (1,10)....... и т.д.
Я хочу отображать эти точки на изображении в любом цвете. как это сделать?
У меня есть некоторые пиксельные точки, скажем, p1 (1,1) и p2 (1,10)....... и т.д.
Я хочу отображать эти точки на изображении в любом цвете. как это сделать?
MATLAB plot
документация довольно полная.
LineSpec свойства отображают синтаксис для разных стилей линий, цветов и точек.
Если вы хотите больше параметров, см. Свойства LineSeries.
Вы можете указать такие свойства, как Marker
(стиль), MarkerEdgeColor
, MarkerFaceColor
и MarkerSize
.
Вы также можете использовать RGB triplets для определения цвета, если вы хотите отклоняться от 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
( съеживается).
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
Вы можете просто использовать график:
plot(p1(1), p1(2), 'ko'); % Small circle point in black.
plot(p1(1), p1(2), 'r.'); % Small dot in red.
Используйте изображение, удерживайте и запишите.
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');