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 루프에서 일련의 이미지, 표시하고자하는 수 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
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.