Matplotlib 如何在一个图形中显示多个相邻的图像?
我正在使用Julia、PyPlot和图像来处理一些图片。因为显示几十个图是不可能的,我想像你在下面看到的那样堆叠图像 我已经规范化了Matplotlib 如何在一个图形中显示多个相邻的图像?,matplotlib,julia,Matplotlib,Julia,我正在使用Julia、PyPlot和图像来处理一些图片。因为显示几十个图是不可能的,我想像你在下面看到的那样堆叠图像 我已经规范化了数组{Array{Float64,2},1}中的图像数据 下面的代码仅显示最后一个最小的图像。数组从最大的图片到最小的图片进行排序 for i = 1:size(P, 1) imshow(P[i], "gray", interpolation = "none") end 我想达到以下效果: 我要做的是创建一个数组,将所有其他图像的数组连接起来,并用零(或任
数组{Array{Float64,2},1}
中的图像数据
下面的代码仅显示最后一个最小的图像。数组从最大的图片到最小的图片进行排序
for i = 1:size(P, 1)
imshow(P[i], "gray", interpolation = "none")
end
我想达到以下效果:
我要做的是创建一个数组,将所有其他图像的数组连接起来,并用零(或任何其他数字)填充空白处
fullimage=cat(1,阵列射线…)
imshow(fullimage)
(很抱歉,我正在打电话,因此无法为您提供一个工作示例!)以下是一个带有绘图的解决方案:
using Plots, TestImages
img = testimage("cameraman")
p = plot(
axis = nothing,
layout = @layout([a [b [c [d;_]; _]; _]]),
size = (800,400)
)
for i=1:4
plot!(p[i], img, ratio=1)
end
p
这里有两种方法
一,。快速但不灵活的子批次
一个:
# create test image
using PyPlot, TestImages
img = testimage("cameraman");
img = [convert(Float64, i.val) for i in img[:,:]]';
二,。手动指定轴定位:
# 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
PS:使用
savefig(filename,facecolor=“black”)
保存图形,以将图形背景设置为黑色,如您的示例中所示。难以置信的是,绘图使一切变得如此简单。汤姆,谢谢你的出色工作!
# 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