14

我想打开两个 png 图像文件并将它们并排显示以进行视觉比较。我有这段代码用于打开一个 png 文件(我从 stackoverflow.com 上的 unutbu 获得):

import numpy as np
import pylab
import matplotlib.cm as cm
import Image

fname='file.png'
image=Image.open(fname).convert("L")
arr=np.asarray(image)
pylab.imshow(arr,cmap=cm.Greys_r)
pylab.title('title')
pylab.show()

有没有办法修改此代码以打开并并排显示 2 个 png 文件及其自己的标题?

4

3 回答 3

22

以下对我有用(您可以注释/取消注释代码中的行以更改“复合”图像的布局):

#!/usr/bin/env python
#-*- coding:utf-8 -*-

import numpy as np
import pylab
import matplotlib.cm as cm
import Image

f = pylab.figure()
for n, fname in enumerate(('1.png', '2.png')):
    image=Image.open(fname).convert("L")
    arr=np.asarray(image)
    f.add_subplot(2, 1, n)  # this line outputs images on top of each other
    # f.add_subplot(1, 2, n)  # this line outputs images side-by-side
    pylab.imshow(arr,cmap=cm.Greys_r)
pylab.title('Double image')
pylab.show()

编辑:截图:

在此处输入图像描述

于 2012-04-29T16:15:30.647 回答
0

这是一个在一个图中包含两个子图的示例。

import pylab

coordinates = range(5)
x = [1,4,5,6,2]
y = [4,6,8,9,2]

fig = pylab.figure()

fig_1 = fig.add_subplot(2,1,1)

fig_1.bar(coordinates,x)

fig_2 = fig.add_subplot(2,1,2)

fig_2.bar(coordinates,y)

pylab.show()

我认为你只需要将它与你已有的结合起来。

于 2012-04-29T16:10:40.797 回答
0

将上面的答案结合到我现在使用的一些代码中:

`

import pylab as P
import numpy as N
import Image

fnames = ['1.png', '2.png', '3.png']

fig = P.figure()
for i,fname in enumerate(fnames):
    fig.add_subplot(number_images, 1, i+1)
    P.imshow(N.asarray(Image.open(fname).convert("L")))
P.show()

`

于 2016-08-02T23:17:35.477 回答