2012-04-29 14 views
14

का उपयोग करके मैं दो पीएनजी छवि फ़ाइलों को खोलना चाहता हूं और दृश्य तुलना के लिए उन्हें एक तरफ प्रदर्शित करना चाहता हूं।एक साथ दो पीएनजी छवियों को एक साथ pylab

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 फ़ाइलें पक्ष के लिए इस कोड को संशोधित करने का कोई तरीका है: मैं उद्घाटन एक PNG फ़ाइल के लिए इस कोड को (जो मैं पर stackoverflow.com unutbu से मिल गया है) खिताब?

उत्तर

22

निम्नलिखित काम करता है (आप टिप्पणी कर सकते हैं/कोड में लाइनों uncomment "समग्र" छवि के लेआउट बदलने के लिए):

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

संपादित: स्क्रीनशॉट:

enter image description here

+0

इस उत्कृष्ट है! धन्यवाद! – balibakbar

+0

यदि आप दो से अधिक छवियों को जोड़ते हैं तो क्या इससे "श्रेणी से बाहर सूचकांक" त्रुटि नहीं होगी? – Seanny123

+3

नवीनतम 'matplotlib' के लिए, आप 1 से शुरू होने वाली इंडेक्स का बेहतर उपयोग करेंगे। [ऑफिकल डॉक] देखें (http://matplotlib.org/api/api_changes.html#changes-in-1-4-x) – wlnirvana

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

मुझे लगता है कि आपको बस जो कुछ भी पहले से मिला है उसे जोड़ना होगा। मेरे लिए

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

`

संबंधित मुद्दे