Python ile bir resim göster


99

IPython.display'i aşağıdaki kodla kullanmayı denedim:

from IPython.display import display, Image
display(Image(filename='MyImage.png'))

Ayrıca matplotlib'i aşağıdaki kodla kullanmayı denedim:

import matplotlib.pyplot as plt
import matplotlib.image as mpimg
plt.imshow(mpimg.imread('MyImage.png'))

Her iki durumda da hiçbir şey görüntülenmez, bir hata mesajı bile.

Yanıtlar:


191

Matplotlib kullanıyorsanız ve etkileşimli dizüstü bilgisayarınızda görüntüyü göstermek istiyorsanız, aşağıdakileri deneyin:

%pylab inline
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
img = mpimg.imread('your_image.png')
imgplot = plt.imshow(img)
plt.show()

Cevabınız için teşekkür ederiz, neredeyse işe yarıyor :-) Görüntü gösteriliyor, ancak gri seviyeler ateş lut kullanılarak değiştiriliyor. Herhangi bir fikir?
FiReTiTi

3
Renk haritasını açıkça tanımlamayı deneyin: plt.imshow (lum_img, cmap = "gray")
Joe Bathelt

3
Anladığım kadarıyla son plt.show () komutu görüntüyü oluşturuyor. Bundan önce, örneğin görüntüye katman ekleyerek arsa ekleyebilirsiniz.
Matplotlib

5
Cevaplarınız için teşekkürler, şimdi mükemmel çalışıyor! Potansiyel okuyucular için sadece küçük ayrıntılar, "gri" yerine "gri".
FiReTiTi

Hayır, gri doğru ve orijinal yazımdır. İngilizcenin bazı sapmalarında Gray benimsenmiştir, bu nedenle ABD gibi ülkelerde daha yaygındır.
perfo

37

Eğer kullanırsanız matplotlib, kullandığınız resim göstermek gerekir plt.show()etkileşimli modda değil olmadıkça. Örneğin:

plt.figure()
plt.imshow(sample_image) 
plt.show()  # display it

Başka bir cevabı okurken, imshow'u değiştirmek yerine zaten sahip olduğum koddan sonra plt.show () eklemem gerektiğini anladım. Yardımınız için teşekkürler.
FiReTiTi

Sanırım bu, kabul edilen cevaba kıyasla soruyu tam olarak cevaplıyor.
Prasad Raghavendra

19

Çok daha basit bir şekilde, aynı şeyi kullanarak yapabilirsiniz

from PIL import Image

image = Image.open('image.jpg')
image.show()

1
Yardımın için teşekkürler. PIL'i kurdum ve şimdi çalışıyor. Denediğim iki yöntemin neden işe yaramadığına dair bir fikriniz var mı?
FiReTiTi

PIL'i kurmada başarısız olursanız (benim için olduğu gibi), Pillow'u deneyin, benim için bir cazibe gibi çalıştı.
mrk

1
İfadenin nasıl import Imageçalıştığını merak ediyorum ; olması gerekmiyor from PIL import Imagemu?
Laszlo Treszkai

Bu çözüm, dosya tanımlayıcısını mutlaka kapatmaz. Bunun yerine, bir bağlam yöneticisi ile kullanın:with Image.open('image.jpg') as im: im.show()
Laszlo Treszkai

Bu Imagepaket nedir?
Louis Yang

10

Bu benim için çalıştı, Esinlenerek @the_unknown_spirit

from PIL import Image
image = Image.open('test.png')
image.show()

5

Opencv-python kullanmak, görüntü üzerinde daha fazla işlem için daha hızlıdır:

import cv2
import matplotlib.pyplot as plt

im = cv2.imread('image.jpg')
im_resized = cv2.resize(im, (224, 224), interpolation=cv2.INTER_LINEAR)

plt.imshow(cv2.cvtColor(im_resized, cv2.COLOR_BGR2RGB))
plt.show()

4

Basit Sözde kodu takip edin

from pylab import imread,subplot,imshow,show

import matplotlib.pyplot as plt

image = imread('...')  // choose image location

plt.imshow(image)

plt.show() // bu size konsol üzerindeki resmi gösterecektir


4

İlk öneriniz benim için çalışıyor

from IPython.display import display, Image
display(Image(filename='path/to/image.jpg'))

Başka araziler de varsa, bu her zaman ilk olarak görüntülenecektir, bu neden?
Christos Karapapas

1
emin değil. İpython uzmanı değilim. Buradaki cevaplardan da görebileceğiniz gibi bir resmi göstermenin birkaç yolu vardır.
Harry Moreno

2

Jupyter Notebook'u kullanarak, kod aşağıdaki kadar basit olabilir.

%matplotlib inline
from IPython.display import Image
Image('your_image.png')

Bazen for döngüsünde bir dizi görüntü görüntülemek isteyebilirsiniz, bu durumda birleştirmek displayve Imageçalışmasını sağlamak isteyebilirsiniz .

%matplotlib inline
from IPython.display import display, Image
for your_image in your_images:
    display(Image('your_image'))

1

Senin kodun:

import matplotlib.pyplot as plt
import matplotlib.image as mpimg

Ne olmalı:

plt.imshow(mpimg.imread('MyImage.png'))
File_name = mpimg.imread('FilePath')
plt.imshow(FileName)
plt.show()

plt.show()Jupyter not defterinde olmadıkça bir eksikliğiniz varsa, diğer IDE'ler grafikleri otomatik olarak göstermez, bu nedenle plt.show()bir planı görüntülemek istediğinizde veya takip kodunda mevcut bir arsa üzerinde değişiklik yaptığınız her seferinde kullanmanız gerekir .


1
import IPython.display as display
from PIL import Image
image_path = 'my_image.jpg'
display.display(Image.open(image_path))
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.