如何在一个图中彼此相邻显示多个图像?

时间:2016-11-28 03:47:00

标签: matplotlib julia

我使用Julia,PyPlot和Images来处理一些图片。因为显示几十个图是不可能的,我想堆叠图像,如下所示。

我已将Array{Array{Float64, 2}, 1}中的图片数据标准化了。

以下代码仅显示最后的最小图像。数组从最大到最小的图片排序。

for i = 1:size(P, 1)
  imshow(P[i], "gray", interpolation = "none")
end

我想达到以下效果:

Stacked images

3 个答案:

答案 0 :(得分:4)

以下是Plots的解决方案:

enter image description here

答案 1 :(得分:2)

这是两种方法。

1。快速但不灵活的subplot一个:

# create test image
using PyPlot, TestImages
img = testimage("cameraman");
img = [convert(Float64, i.val) for i in img[:,:]]';

# plot in desired positions
subplot(1,2,1); imshow(img); axis("off");
subplot(2,4,3); imshow(img); axis("off");
subplot(4,8,7); imshow(img); axis("off");
subplot(8,16,15); imshow(img); axis("off");
subplot(16,32,31); imshow(img); axis("off"); # ... etc

enter image description here

2. 手动指定轴定位:

# using same image as above
figure();
axes(position=[0,0,0.5,1]); imshow(img); axis("off");
axes(position=[0.5,0.5,0.25,0.5]); imshow(img); axis("off");
axes(position=[0.75,0.75,0.125,0.25]); imshow(img); axis("off");
axes(position=[0.875,0.875,0.0625,0.125]); imshow(img); axis("off"); # ... etc

enter image description here

答案 2 :(得分:1)

我要做的是通过连接所有其他图像的数组来创建单个数组,并填充您希望空白空间为零(或任何其他数字)的位置?

  1. 通过用零填充底部
  2. ,创建一个新的数组数组,其中所有内部数组具有相同的高度
  3. fullimage = cat(1, arrayofarrays...)
  4. imshow(fullimage)
  5. (抱歉,我在手机上,所以不能为你提供一个有效的例子!)