Как показать точки на изображении в Matlab?

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

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

Ответ 1

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

Ответ 2

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

plot(p1(1), p1(2), 'ko');  % Small circle point in black.
plot(p1(1), p1(2), 'r.');  % Small dot in red.

Ответ 3

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

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');