如何在MATLAB中将图像拼接成一个矩阵?

时间:2019-04-22 08:55:44

标签: image matlab image-processing matrix

我有64张图像(它们的名称是:00001.jpg,...,00064.jpg)。我想用这些图像创建一个矩阵,其结果如下:

[img1 img2 ... img8
 img9 img10 ...img16
 ...
 img57 ........img64]

我已经尝试过horzcat(),imtile(),montage()方法,但是这些方法给了我我想要的结果。

我希望有一个图像的8x8矩阵。我想使用Matlab以编程方式完成上述操作,但找不到任何解决方案。

我怎样才能做到这一点?谢谢!

2 个答案:

答案 0 :(得分:0)

图像基本上是矩阵。

这是连接2个矩阵(link)的方式

A = ones(1,4);
B = zeros(1,4);
C = [A B];  //Horizontal
D = [A; B]; //Vertical

使用此逻辑在水平和垂直方向上合并矩阵。

表示,您应该了解矩阵大小及其不匹配问题。

答案 1 :(得分:0)

功能强大是您想要的。您对8x8尺寸的期望不正确。请看下面的例子。

A = magic(2);

>> imtile({A,A,A,A})

ans =

 1     3     1     3
 4     2     4     2
 1     3     1     3
 4     2     4     2

由于imtile接受ImageDatastore,所以最容易做到的是:

imds = imageDatastore(pathToYourImages)
tiledImage = imtile(imds);