Image 黑白加红色圆圈的棋盘格图案

Image 黑白加红色圆圈的棋盘格图案,image,matlab,plot,Image,Matlab,Plot,我是新来的,是matlab的初学者。我有个问题要解决。我通过互联网和这个网站寻找解决方案。但我无法得到确切的答案。问题是 在Matlab中绘图 “创建黑白棋盘格图案的图像,并在图像中用红色圆圈标记所有黑色正方形的中心。” 我不允许使用棋盘命令或其他工具箱命令。我已经花了很多时间,但仍然无法解决它 我能想到的一件事是创建一个由0和1组成的矩阵。差不多 m=zeros(10); m(1:2:end,1:2:end) = 1; m(2:2:end,2:2:end) = 1; 您已正确创建棋盘格图

我是新来的,是matlab的初学者。我有个问题要解决。我通过互联网和这个网站寻找解决方案。但我无法得到确切的答案。问题是

在Matlab中绘图

“创建黑白棋盘格图案的图像,并在图像中用红色圆圈标记所有黑色正方形的中心。”

我不允许使用棋盘命令或其他工具箱命令。我已经花了很多时间,但仍然无法解决它

我能想到的一件事是创建一个由0和1组成的矩阵。差不多

m=zeros(10);
m(1:2:end,1:2:end) = 1; 
m(2:2:end,2:2:end) = 1; 

您已正确创建棋盘格图案。现在你只需要想象一下。您可以使用或:

这两个命令的目的都是显示矩阵中的图像。此图像遵循彩色地图。最小值显示为彩色地图的下端,而最大比例显示为彩色地图的上端

但是,
imagesc
另外,缩放输出,以便矩阵中遇到的最小值和最大值分别到达彩色地图的下端和上端

有许多彩色地图可供选择。为了使用棋盘,请使用
灰色
彩色地图:

imagesc(m); colormap gray;
%// or
%//image(m); colormap gray;
为完整起见,所有彩色地图的列表(不包括从R2014b开始引入的新parula彩色地图)可在以下位置找到:


(来源:)


现在,你需要做的最后一件事是在每个黑色正方形所在的位置画红色圆圈。这可以通过在棋盘中查找包含值0的所有坐标,然后以红色打印这些点来实现:

%// Code from before... your code
m=zeros(10);
m(1:2:end,1:2:end) = 1; 
m(2:2:end,2:2:end) = 1; 

%// New code
imagesc(m); colormap gray;
hold on;
[row,col] = find(m == 0);
plot(row, col, 'r.', 'MarkerSize', 14);
等一下允许对包含棋盘格图案的窗口进行更多更新。如果您试图更新图形以在其上添加更多内容,则图形将用新内容覆盖,而不会保留旧内容。所以重要的是你要坚持住那里

本例中使用的命令将查找棋盘矩阵
m
中值为0的所有行和列位置。之后,我们取这些位置和红色圆圈。这些坐标将用作放置圆的中心。我使用
plot
进行此操作,并确保绘制红色圆圈(即
r.
)。我还使标记的大小足够大,以便您可以看到红点(即,
MarkerSize=14
),但不足以完全覆盖黑色正方形

我终于得到了这样的图像:


你几乎拥有了它。看到伟大的解释一如既往@不知道你受欢迎。如果你不再需要帮助,请考虑接受我的回答。这可以通过单击我答案顶部的复选标记图标来完成,该图标位于向上和向下投票箭头下方的左侧。这告诉社区你不再需要帮助。祝你好运
%// Code from before... your code
m=zeros(10);
m(1:2:end,1:2:end) = 1; 
m(2:2:end,2:2:end) = 1; 

%// New code
imagesc(m); colormap gray;
hold on;
[row,col] = find(m == 0);
plot(row, col, 'r.', 'MarkerSize', 14);