Tampilkan gambar dengan Python


99

Saya mencoba menggunakan IPython.display dengan kode berikut:

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

Saya juga mencoba menggunakan matplotlib dengan kode berikut:

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

Dalam kedua kasus tersebut, tidak ada yang ditampilkan, bahkan tidak ada pesan kesalahan.

Jawaban:


189

Jika Anda menggunakan matplotlib dan ingin menampilkan gambar di buku catatan interaktif Anda, coba hal berikut ini:

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

Terima kasih atas jawaban Anda, ini hampir berhasil :-) Gambar ditampilkan, tetapi level abu-abu diganti menggunakan api lut. Ada ide?
FiReTiTi

2
Coba definisikan peta warna secara eksplisit: plt.imshow (lum_img, cmap = "grey")
Joe Bathelt

3
Dalam pemahaman saya, perintah plt.show () terakhir menghasilkan tampilan. Sebelum itu, Anda bisa menambahkan plot, misalnya dengan menambahkan layer ke gambar. Saya merekomendasikan tutorial gambar matplotlib sebagai referensi: matplotlib.org/users/image_tutorial.html
Joe Bathelt

5
Terima kasih atas jawaban Anda, sekarang berfungsi dengan sempurna! Hanya sedikit detail untuk calon pembaca, itu "abu-abu" bukan "abu-abu".
FiReTiTi

Tidak, Gray adalah ejaan yang benar dan asli. Gray telah diadopsi dalam beberapa penyimpangan bahasa Inggris sehingga lebih umum di negara-negara seperti Amerika Serikat.
perfo

37

Jika Anda menggunakan matplotlib, Anda perlu menampilkan gambar menggunakan plt.show()kecuali Anda tidak dalam mode interaktif. Misalnya:

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

Membaca jawaban lain, saya baru saja mendapatkan bahwa saya harus menambahkan plt.show () setelah kode yang sudah saya miliki, alih-alih mengganti imshow. Terima kasih atas bantuan Anda.
FiReTiTi

Saya pikir ini menjawab pertanyaan dengan tepat dibandingkan dengan jawaban yang diterima.
Prasad Raghavendra

19

Dengan cara yang lebih sederhana, Anda dapat melakukan hal yang sama dengan menggunakan

from PIL import Image

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

1
Terima kasih untuk bantuannya. Saya telah menginstal PIL dan sekarang berfungsi. Tahu mengapa kedua metode yang saya coba tidak berhasil?
FiReTiTi

Jika gagal menginstal PIL (seperti yang terjadi pada saya), coba Pillow, itu bekerja seperti pesona bagi saya.
mrk

1
Saya bertanya-tanya bagaimana import Imagepernyataan itu bekerja; bukankah seharusnya begitu from PIL import Image?
Laszlo Treszkai

Solusi ini tidak selalu menutup deskriptor file. Sebaliknya, gunakan dengan pengelola konteks:with Image.open('image.jpg') as im: im.show()
Laszlo Treszkai

Apa Imagepaket ini ?
Louis Yang

10

Ini berhasil untuk saya, Terinspirasi oleh @the_unknown_spirit

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

5

Menggunakan opencv-python lebih cepat untuk lebih banyak operasi pada gambar:

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

Ini sederhana Gunakan kode semu berikut

from pylab import imread,subplot,imshow,show

import matplotlib.pyplot as plt

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

plt.imshow(image)

plt.show() // ini akan menampilkan gambar di konsol.


4

Saran pertama Anda berhasil untuk saya

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

Ini akan selalu tampil pertama jika ada juga plot lain, mengapa demikian?
Christos Karapapas

1
tidak yakin. Saya bukan ahli ipython. Ada beberapa cara untuk menampilkan gambar seperti yang Anda lihat dari jawaban di sini.
Harry Moreno

2

Menggunakan Jupyter Notebook, kodenya dapat sesederhana berikut ini.

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

Terkadang Anda mungkin ingin menampilkan serangkaian gambar dalam loop for, dalam hal ini Anda mungkin ingin menggabungkan displaydan Imagemembuatnya berfungsi.

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

1

Kode Anda:

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

Apa yang seharusnya:

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

Anda kehilangan a plt.show()kecuali Anda berada di notebook Jupyter, IDE lain tidak secara otomatis menampilkan plot sehingga Anda harus menggunakan plt.show()setiap kali Anda ingin menampilkan plot atau membuat perubahan pada plot yang ada dalam kode tindak lanjut.


1
import IPython.display as display
from PIL import Image
image_path = 'my_image.jpg'
display.display(Image.open(image_path))
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.