잘생긴 얼음의신님의 이글루입니다

qordidtn02.egloos.com

포토로그



[python]2d array to image - array를 image로 바꾸기 python

image array를 image로 바꾼 후 저장해보도록 하겠습니다. 
이번에는 scipy.misc라는 것을 사용해보겠습니다. 
저는 1차원 데이터를 2차원 데이터로 바꾼후 이를 이미지로 바꿔 저장했습니다.

보안상 코드 전문을 공개하지 못하는 점 양해 부탁드립니다.

코드는 아래와 같습니다.

import scipy.misc
def array2image(filename, data):
    
    img_array = numpy.array(numpy.reshape(data, (48,64,3)), dtype=numpy.float32)
    scipy.misc.imsave(FILEPATH + filename, img_array)


먼저 scipy.misc를 import한후 제 코드에서 data는 일차원 list였기 때문에 2차원 배열로 reshape 해주었습니다. 
numpy.reshape(data, (48,64,3)에서 마지막 값이 3인 이유는 r,g,b값 3개의 data를 담았기 때문입니다.
그리고  list type인 data를 array type으로 바꿔줍니다. 

이때 주의해야할 점은 dtype =numpy.float32입니다. 데이터의 data형에 맞게 적어주셔야 합니다.
그렇지 않으면 이미지가 까맣게 됩니다...

마지막으로 scipy.misc.imsave함수를 이용해 저장 경로와 2차원 array data를 parameter로 보내줍니다. 

이때 img_array의 모든 value값들은 0~1사이의 값을 가져야 합니다. image의 rgb값은 0~255사이의 값을 가지는데 

scipy.misc 라이브러리는 r/255, g/255, b/255를 계산해서 정규화된 0~1사이의 값만을 이용해 연산하기 때문입니다.


덧글

댓글 입력 영역