PDA

查看完整版本 : 如何在Matlab中显示图像上的点?


poster
2019-12-10, 20:48
我有一些像素点可以说p1(1,1)和p2(1,10).......依此类推

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



回答:

MATLAB plot (http://www.mathworks.com/help/techdoc/ref/plot.html)文档非常全面。

LineSpec (http://www.mathworks.com/help/techdoc/ref/linespec.html)属性列出了不同样式的线,颜色和点的语法。

如果需要更多选项,请参见LineSeries属性 (http://www.mathworks.com/help/techdoc/ref/lineseriesproperties.html) 。您可以指定诸如Marker (样式), MarkerEdgeColor , MarkerFaceColor和MarkerSize 。

如果要偏离rgbcmykw,还可以使用RGB三胞胎 (http://www.mathworks.com/help/techdoc/visualize/f0-18164.html#f0-5919)来定义颜色。

例子:

用橙色的五点星形标记绘制一个点(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 (http://www.mathworks.com/help/techdoc/ref/eval.html) ( 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

更多&回答... (https://stackoverflow.com/questions/3842195)