> 백엔드 개발 > 파이썬 튜토리얼 > PIL 이미지를 NumPy 배열로 변환했다가 다시 되돌리는 방법은 무엇입니까?

PIL 이미지를 NumPy 배열로 변환했다가 다시 되돌리는 방법은 무엇입니까?

DDD
풀어 주다: 2024-11-23 07:33:08
원래의
466명이 탐색했습니다.

How to Convert a PIL Image to a NumPy Array and Back?

PIL 이미지를 NumPy 배열로 변환

문제:

PIL 이미지를 NumPy 배열로 어떻게 변환할 수 있나요? 더 빠른 픽셀 단위 변환을 수행한 다음 수정한 후 PIL 이미지로 다시 로드합니다. 배열?

답변:

NumPy 배열로 변환:

PIL 이미지를 NumPy 배열로 변환하려면 다음을 사용하세요. 다음 코드:

import numpy as np
from PIL import Image

pic = Image.open("foo.jpg")
pix = np.array(pic)
로그인 후 복사

이렇게 하면 픽셀 값을 포함하는 모양(높이, 너비, 채널)의 3D 배열.

PIL 이미지로 다시 변환:

수정된 배열을 다시 PIL 이미지로 로드하려면, 여러 가지 방법이 있습니다:

1. Image.putdata() 사용:

배열을 다시 튜플 시퀀스로 변환:

data = list(tuple(pixel) for pixel in pix)
pic.putdata(data)
로그인 후 복사

2. Image.fromarray() 사용(PIL 1.1.6 이상):

수정된 배열을 이미지에 할당하기만 하면 됩니다:

pic = Image.fromarray(pix)
로그인 후 복사

추가 참고 사항:

  • PIL 이미지의 getdata() 메소드는 평면화된 배열이므로 3D 배열을 얻으려면 모양을 변경해야 합니다.
  • np.array(pic)의 NumPy 배열은 채널 축을 마지막 차원으로 갖는 반면, getdata() 메서드는 채널 축을 가정합니다.
  • Image.fromarray() 메서드는 특히 큰 이미지의 경우 더 빠른 변환을 제공합니다.

위 내용은 PIL 이미지를 NumPy 배열로 변환했다가 다시 되돌리는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿