PIL로 이미지를 저장하려면 어떻게해야합니까?
방금 이미지의 푸리에 변환을 수행하기 위해 이전에 찾은 게시물을 사용하여 Python 이미지 라이브러리 (PIL)를 사용하여 이미지 처리를 수행했으며 저장 기능을 작동시킬 수 없습니다. 전체 코드는 잘 작동하지만 결과 이미지를 저장하지 않습니다.
from PIL import Image
import numpy as np
i = Image.open("C:/Users/User/Desktop/mesh.bmp")
i = i.convert("L")
a = np.asarray(i)
b = np.abs(np.fft.rfft2(a))
j = Image.fromarray(b)
j.save("C:/Users/User/Desktop/mesh_trans",".bmp")
내가 얻는 오류는 다음과 같습니다.
save_handler = SAVE[string.upper(format)] # unknown format
KeyError: '.BMP'
Pythons PIL로 이미지를 어떻게 저장할 수 있습니까?
파일 확장자에 관한 오류가 처리되었습니다. 사용하거나 bmp
(점없이) 이미 확장자가있는 출력 이름을 전달하십시오. 이제 오류를 처리하려면 정수 이미지로 저장할 주파수 영역의 데이터를 적절하게 수정해야합니다 PIL
.는 bmp로 저장하기 위해 float 데이터를 허용하지 않는다고 말합니다.
다음은 적절한 시각화를위한 변환을 수행하기위한 제안 ( fftshift
및 numpy.array
대신 및 사용 과 같은 기타 사소한 수정 포함 numpy.asarray
)입니다.
import sys
import numpy
from PIL import Image
img = Image.open(sys.argv[1]).convert('L')
im = numpy.array(img)
fft_mag = numpy.abs(numpy.fft.fftshift(numpy.fft.fft2(im)))
visual = numpy.log(fft_mag)
visual = (visual - visual.min()) / (visual.max() - visual.min())
result = Image.fromarray((visual * 255).astype(numpy.uint8))
result.save('out.bmp')
PIL이 확장자에서 파일 유형을 얻도록 할 수 있어야합니다.
j.save("C:/Users/User/Desktop/mesh_trans.bmp")
( 예상대로 일치하지 않음) .
전에 제거하십시오 . 오류에서 알 수 있듯이 는 제공 한 대문자로 된 다음 . 그러나 해당 객체의 해당 키는 (대신 )입니다..bmp
BMP
save_handler
format
SAVE
BMP
.BMP
에 대해 잘 모르지만 PIL
몇 가지 빠른 검색 mode
을 통해 이미지 의 문제인 것 같습니다 . 정의 j
를 다음으로 변경 :
j = Image.fromarray(b, mode='RGB')
나를 위해 일하는 PIL
것처럼 보였습니다 (그러나 나는에 대한 지식이 거의 없으므로 @mmgp의 솔루션을 사용하는 것이 좋습니다 / 그는 그들이 무엇을하고 있는지 명확하게 알고 있습니다 :)). 의 유형에 대해이 페이지를 mode
사용했습니다. 이 페이지의 선택 사항 중 하나가 도움이되기를 바랍니다.
이것이 오래되었다는 것을 알고 있지만 Pillow를 사용하는 동안 파일을 사용 open(fp, 'w')
하고 저장하여 파일을 열면 작동한다는 것을 알았 습니다. 예 :
with open(fp, 'w') as f:
result.save(f)
fp
물론 파일 경로입니다.
참고 URL : https://stackoverflow.com/questions/14452824/how-can-i-save-an-image-with-pil
'program tip' 카테고리의 다른 글
GDB에서 함수의 반환 값을 검사하는 방법은 무엇입니까? (0) | 2020.08.22 |
---|---|
ICollection (0) | 2020.08.22 |
Rails : 지역을 부분적으로 전달하는 구문에 대해 혼란 스러움 (0) | 2020.08.22 |
텍스트 너비 계산 (0) | 2020.08.21 |
AWS S3 : 사용중인 디스크 공간을 확인하려면 어떻게해야합니까? (0) | 2020.08.21 |