2012-04-29 36 views
14

İki png görüntü dosyasını açmak ve görsel karşılaştırma için yan yana görüntülemek istiyorum. iki png görüntüyü aynı anda pylab kullanarak görüntüleme

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() 

kendi ile yan açmak ve ekran 2 png dosyaları yan için bu kodu değiştirmek için bir yolu var mı: (Ben stackoverflow.com üzerinde unutbu var) açılış bir png dosyası için bu kodu var başlıklar?

cevap

22

aşağıdaki eserlerini (siz "kompozit" görüntüsünün düzenini değiştirmek için kod satırları uncomment/yorum yapabilirsiniz):

#!/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() 

DÜZENLEME: ekran görüntüsü:

enter image description here Şimdi kullanan bazı koduna yukarıdaki cevapları birleştiren

+0

bu mükemmel! Teşekkürler! – balibakbar

+0

İkiden fazla resim eklerseniz bu bir "dizin dışı aralık" hatasına neden olmaz? – Seanny123

+3

En son 'matplotlib' için, 1'den başlayarak dizini kullanmalısınız. [Resmi dokümana bakınız] (http://matplotlib.org/api/api_changes.html#changes-in-1-4-x) – wlnirvana

0

Bir şekilde iki alt not içeren bir örnek.

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() 

Ben sadece zaten ne ile birleştirmek gerektiğini düşünüyorum. Benim için

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() 

`

İlgili konular