Pythonで画像を表示する


107

次のコードでIPython.displayを使用しようとしました。

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

また、次のコードでmatplotlibを使用しようとしました。

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

どちらの場合も、エラーメッセージも表示されず、何も表示されません。

回答:


210

matplotlibを使用していて、インタラクティブノートブックに画像を表示したい場合は、次のことを試してください。

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

回答ありがとうございます。ほぼ機能します:-)画像は表示されますが、グレーレベルはfirelutを使用して置き換えられます。何か案が?
FiReTiTi 2016

3
カラーマップを明示的に定義してみてください:plt.imshow(lum_img、cmap = "grey")
Joe Bathelt 2016

3
私の理解では、最後のplt.show()コマンドが表示を生成します。その前に、たとえば画像にレイヤーを追加することで、プロットに追加することができます。参考としてmatplotlibイメージチュートリアルをお勧めします:matplotlib.org/users/image_tutorial.html
Joe Bathelt 2016

5
あなたの答えをありがとう、今それは完全に機能します!潜在的な読者のためのほんの少しの詳細、それは「灰色」の代わりに「灰色」です。
FiReTiTi 2016

いいえ、灰色は正しいオリジナルのスペルです。灰色は英語の一部の逸脱で採用されているため、米国などの国でより一般的です。
perfo

39

を使用する場合は、インタラクティブモードでない限りmatplotlib、を使用して画像を表示する必要がありplt.show()ます。例えば:

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

別の答えを読んで、imshowを置き換える代わりに、すでに持っているコードの後に​​plt.show()を追加する必要があることがわかりました。ご協力いただきありがとうございます。
FiReTiTi 2016

受け入れられた答えと比較して、これは質問に正確に答えると思います。
PrasadRaghavendra20年

23

はるかに簡単な方法で、あなたは同じことをすることができます

from PIL import Image

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

1
ご協力ありがとうございました。PILをインストールしましたが、動作します。私が試した2つの方法がうまくいかなかった理由は何ですか?
FiReTiTi 2016

PILのインストールに失敗した場合(私の場合のように)、Pillowを試してみてください。それは私にとって魅力のように機能しました。
mrk 2017年

1
このimport Imageステートメントはどのように機能するのでしょうか。そうではないfrom PIL import Imageですか?
LaszloTreszkai20年

このソリューションは、必ずしもファイル記述子を閉じるとは限りません。代わりに、コンテキストマネージャとそれを使用しますwith Image.open('image.jpg') as im: im.show()
ラズロTreszkai

このImageパッケージは何ですか?
ルイ・ヤン

7

opencv-pythonを使用すると、画像の操作を増やすことができます。

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

簡単です次の擬似コードを使用します

from pylab import imread,subplot,imshow,show

import matplotlib.pyplot as plt

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

plt.imshow(image)

plt.show() //これによりコンソールに画像が表示されます。


4

あなたの最初の提案は私のために働きます

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

他のプロットもある場合、これは常に最初に表示されますが、それはなぜですか?
ChristosKarapapas20年

1
わからない。私はipythonの専門家ではありません。ここでの回答からわかるように、画像を表示する方法はいくつかあります。
ハリーモレノ

3

Jupyter Notebookを使用すると、コードは次のように単純になります。

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

時には、あなたが結合したいかもしれません、その場合のためのループで一連の画像を表示したいかもしれませんdisplayし、Imageそれを機能させるために。

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

2

あなたのコード:

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

それがどうあるべきか:

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

あなたが不足しているplt.show()あなたが使用する必要があるので、あなたはJupyterノートブックでもない限り、他のIDEのは、自動的にプロットを表示しませんplt.show()あなたはプロットを表示するか、フォローアップのコード内の既存のプロットを変更したたびに。



1

任意の数の画像を使用したJupyterノートブックPIL画像視覚化のソリューション:

def show(*imgs, **kwargs):
    '''Show in Jupyter notebook one or sequence of PIL images in a row. figsize - optional parameter, controlling size of the image.
    Examples:
    show(img)
    show(img1,img2,img3)
    show(img1,img2,figsize=[8,8])
    '''
    
    if 'figsize' not in kwargs:
        figsize = [9,9]
    else:
        figsize = kwargs['figsize']
    
    fig, ax = plt.subplots(1,len(imgs),figsize=figsize)
    if len(imgs)==1:
        ax=[ax]
    
    for num,img in enumerate(imgs):
        ax[num].imshow(img)
        ax[num].axis('off')
        
    tight_layout()
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.