image - 如何在 MATLAB 上使用 imshowpair 调整棋盘图案的大小?
问题描述
我写了以下代码:
imageResult = imshowpair(brain1, brain2,'checkerboard');
但这并不能控制棋盘格的大小。
如何指定棋盘格正方形的大小是多少?文档对此imshowpair
并不清楚。如果您知道其他方式,请随时提出建议!
解决方案
我认为没有自动执行此操作的选项。
但是您可以使用 kronecker 张量积手动创建棋盘索引。
ind = kron(eye(2,2),ones(5,5))
生成一个网格大小为 5 的 2x2 棋盘:
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),:)
推荐阅读
- javascript - 如何在 Spring thymeleaf 应用程序中获取调用控制器的 url
- javascript - 搜索从数据集中设置 ID 的元素
- python - 如何使用 Python `openpyxl` 读取大纲级别?
- php - Laravel DB 查询构建器 - 使用多个带有别名的“来自”
- electron - Electron 中的 Freebsd Linux 目标。是否可以在 Freebsd 操作系统中使用带有“.freebsd”扩展名的生成文件?
- flutter - 将其中包含时间的字符串转换为 int
- identityserver4 - Blazor、EntityServer4 路由登录
- arrays - 如何在swift中循环查找整数数组中的重复值?
- c# - 使用 `SyntaxGenerator` 创建扩展方法
- java - 自定义适配器不会更改列表视图中的文本