我有一些像素点让我们说p1(1,1)和p2(1,10)......等等
我希望以任何颜色在图像上显示这些点。 怎么做?
答案 0 :(得分:6)
MATLAB plot
文档非常全面。
LineSpec属性列出了不同样式的线条,颜色和点的语法。
如果您想要更多选项,请参阅LineSeries Properties。
您可以指定Marker
(样式),MarkerEdgeColor
,MarkerFaceColor
和MarkerSize
等属性。
如果您想偏离rgbcmykw,也可以使用RGB triplets来定义颜色。
示例:
使用橙色五角星标记绘制单个点(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
答案 1 :(得分:4)
你可以使用剧情:
plot(p1(1), p1(2), 'ko'); % Small circle point in black.
plot(p1(1), p1(2), 'r.'); % Small dot in red.
答案 2 :(得分: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');