我编写了以下代码:
imageResult = imshowpair(brain1, brain2,'checkerboard');
但这不能控制棋盘格的大小。
如何指定棋盘格的正方形大小?
imshowpair
文档尚不清楚。
如果您知道其他方法,请随时提出建议!
答案 0 :(得分:0)
我认为没有自动执行此操作的选项。
但是您可以使用kronecker张量积手动创建棋盘格索引。
ind = kron(eye(2,2),ones(5,5))
生成一个2x2的棋盘格,其网格大小为5:
1 1 1 1 1 0 0 0 0 0
1 1 1 1 1 0 0 0 0 0
1 1 1 1 1 0 0 0 0 0
1 1 1 1 1 0 0 0 0 0
1 1 1 1 1 0 0 0 0 0
0 0 0 0 0 1 1 1 1 1
0 0 0 0 0 1 1 1 1 1
0 0 0 0 0 1 1 1 1 1
0 0 0 0 0 1 1 1 1 1
0 0 0 0 0 1 1 1 1 1
您现在可以将此模式重复N次。
例如,我们将此模式重复10次。
ind = kron(ones(10,10),ind)
如果图像是3D图像,您仍然可以复制此矩阵3次:
ind = repmat(ind,1,1,3);
因此,您获得了2X5X10 x 2X5X10
(500x500)
棋盘格
现在您可以合并两个图像,并且还需要将其设置为500x500:
IMG1 = IMG1(logical(ind)) = 0 % an index need to be of type logical.
IMG2 = IMG1(logical(~ind)) = 0
IMG = IMG1+IMG2
如果由于图像的列或行数奇数而无法获得合适尺寸的棋盘格矩阵,则始终可以获取原始矩阵的样本
subind = ind(1:size(IMG1,1),1:size(IMG1,2))
与3D索引相同:
subind = ind(1:size(IMG1,1),1:size(IMG1,2),:)
答案 1 :(得分:-1)
您可以使用checkerboard
函数来生成适当大小的棋盘。例如
I = checkerboard(5);
将制作一个正方形棋盘,每个正方形为5 * 5。您可以进一步调整输入以使其也为矩形,例如如果您要使用5x8的棋盘而不是8x8的棋盘
I = checkerboard(5,5,8);
注意:如果要使用二进制棋盘格,只需使用以下命令调整命令
I = checkerboard(5)>0.5;