如何在matlab中显示图像上的点?

时间:2010-10-01 18:54:22

标签: matlab

我有一些像素点让我们说p1(1,1)和p2(1,10)......等等

我希望以任何颜色在图像上显示这些点。 怎么做?

3 个答案:

答案 0 :(得分:6)

MATLAB plot文档非常全面。

LineSpec属性列出了不同样式的线条,颜色和点的语法。

如果您想要更多选项,请参阅LineSeries Properties。 您可以指定Marker(样式),MarkerEdgeColorMarkerFaceColorMarkerSize等属性。

如果您想偏离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');