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

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

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

Ответы на вопрос(3)

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

plot(p1(1), p1(2), 'ko');  % Small circle point in black.
plot(p1(1), p1(2), 'r.');  % Small dot in red.
 emrea04 окт. 2010 г., 02:03
Не забудьhold on изображение первое.
 chee06 окт. 2010 г., 19:25
но я хочу отобразить все точки i-e p1, p2, p3 ..... на изображении.
Решение Вопроса

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

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

Если вы хотите больше вариантов, см.LineSeries Properties, Вы можете указать свойства, такие как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 (съеживаться).

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
 chee06 окт. 2010 г., 19:26
но я хочу отобразить все точки i-e p1, p2, p3 ..... на изображении. Это показывает только одну точку: o
 Doresoom06 окт. 2010 г., 19:50
Вы храните отдельные очки какp1=(x1,y1), p2=(x2,y2), так далее.? Не делай этого. MATLAB предназначен для работы с матрицами. Сохраните ваши точки в матрице 2xN и используйте вариант массива точек в моем ответе.
 chee23 окт. 2010 г., 22:46
но этот eval не отображает точки на изображении. что теперь делать? :(
 Doresoom08 окт. 2010 г., 21:13
Не стесняйтесь высказать мой ответ, если это решило вашу проблему.
 Doresoom25 окт. 2010 г., 16:27
@chee: Прочитайте весь мой ответ. Последняя строка передРЕДАКТИРОВАТЬ будет строить ваши точки после того, как они в правильном формате. (Формат, в который вы их вводите, используя eval.)

держись и сюжет.

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');
 zhangxaochen06 дек. 2016 г., 10:09
голос заhold on

Ваш ответ на вопрос