그래서 RGB 값으로 그림을 저장해야하는 프로그램을 만들려고합니다.PIL을 사용하여 파이썬에서 RGB 값을 사용하여 그림 저장
inputIm = Image.open(args.target)
#denoises image and saves it to disk
#data = DenoiseImage(inputIm, factor, iters)
data = np.array(inputIm.getdata())
n, m = inputIm.size
print data
outputIm = Image.new("RGB", (n, m))
outputIm.putdata(data)
outputIm.save(args.fileName)
을 내가 그것을 실행할 때이 오류가 : 이것은 내가 다음, 데이터를 얻을 열고 다시 데이터를 사용하여 이미지를 저장할 수 있는지 확인하기 위해 설정 한 단순한 테스트입니다
Traceback (most recent call last):
File "DenoiseNumpyWeave.py", line 253, in <module>
outputIm.putdata(data)
File "/usr/lib/python2.7/dist-packages/PIL/Image.py", line 1215, in putdata
self.im.putdata(data, scale, offset)
SystemError: new style getargs format but argument is not a tuple
그러나 인쇄 데이터 라인에 튜플이있는 배열이 인쇄되므로 실제로 잘못하고 있는지 이해할 수 없습니다. 흑백 사진 ("RGB"대신 "L")을 사용하여 똑같은 작업을 수행했으며 튜플이없는 배열 (단일 값 대신)에 넣어서 효과가있었습니다.
'putdata'처럼 보이지만 배열 수가 많습니다. 먼저 일반 목록으로 변환 해보십시오. – Kevin
@kevin 나는 이것을하려고했다 :'data2 = list (data)'그리고 나서 putdata에서 data2를 사용했으나 작동하지 않았다. 같은 오류. – user2875994
@kevin은 또한 list (data) 대신에'data2 = data.tolist()'를 시도해 보았습니다. 즉,'data2 = list (inputIm.getdata())'가 작동합니다 ...하지만 numpy 배열이 필요하므로 그렇게 할 수 없습니다. – user2875994