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

두 경우 모두 아무것도 표시되지 않으며 오류 메시지도 표시되지 않습니다.

답변:


211

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

답변 해 주셔서 감사합니다. 거의 작동합니다. :-) 이미지가 표시되지만 그레이 레벨은 불을 사용하여 교체됩니다. 어떤 생각?
FiReTiTi

3
명시 적으로 컬러 맵을 정의하십시오 : plt.imshow (lum_img, cmap를을 = "회색")
조 Bathelt

3
내 이해에서 마지막 plt.show () 명령이 디스플레이를 생성합니다. 그 전에는 예를 들어 이미지에 레이어를 추가하여 플롯에 추가 할 수 있습니다. matplotlib 이미지 튜토리얼을 참고로 추천합니다 : matplotlib.org/users/image_tutorial.html
Joe Bathelt

5
답변 해 주셔서 감사합니다. 이제 완벽하게 작동합니다! 잠재적 인 독자를위한 약간의 세부 사항은 "회색"대신 "회색"입니다.
FiReTiTi

아니요, 회색은 정확하고 원래의 철자입니다. 회색은 영어의 일부 편차에 채택되었으므로 미국과 같은 국가에서 더 일반적입니다.
perfo

39

를 사용 matplotlib하는 plt.show()경우 대화 형 모드가 아닌 경우를 사용하여 이미지를 표시해야 합니다. 예 :

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

다른 답변을 읽으면 imshow를 대체하는 대신 이미 가지고있는 코드 뒤에 plt.show ()를 추가해야한다는 것을 알았습니다. 당신의 도움을 주셔서 감사합니다.
FiReTiTi

나는 이것이 받아 들인 대답과 비교하여 질문에 정확하게 대답한다고 생각합니다.
Prasad Raghavendra

23

훨씬 간단한 방법으로 다음을 사용하여 동일한 작업을 수행 할 수 있습니다.

from PIL import Image

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

1
도와 주셔서 감사합니다. PIL을 설치했고 이제 작동합니다. 내가 시도한 두 가지 방법이 작동하지 않는 이유는 무엇입니까?
FiReTiTi

PIL을 설치하지 못하면 (나의 경우처럼) Pillow를 사용해보십시오.
mrk

1
import Image성명서가 어떻게 작동 하는지 궁금합니다 . 안 from PIL import Image그래?
Laszlo Treszkai 20.01.25

이 솔루션은 반드시 파일 설명자를 닫지는 않습니다. 대신 컨텍스트 관리자와 함께 사용하십시오.with Image.open('image.jpg') as im: im.show()
Laszlo Treszkai

Image패키지 는 무엇입니까 ?
Louis Yang

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

다른 플롯도있는 경우 항상 먼저 표시됩니다. 그 이유는 무엇입니까?
Christos Karapapas

1
확실하지 않다. 저는 ipython 전문가가 아닙니다. 여기 답변에서 볼 수 있듯이 이미지를 표시하는 방법에는 여러 가지가 있습니다.
Harry Moreno

3

Jupyter Notebook을 사용하면 코드는 다음과 같이 간단 할 수 있습니다.

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

때때로 당신은 당신이 결합하려는 수있는 경우 for 루프에서 일련의 이미지, 표시하고자하는 수 displayImage그것을 작동하도록합니다.

%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
import IPython.display as display
from PIL import Image
image_path = 'my_image.jpg'
display.display(Image.open(image_path))

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.