본문 바로가기

Programming/Python

[Python] image bytes(image.blob)을 numpy.array로 타입 변경 하기

image.blob은 일반적으로 이미지 데이터가 이진(binary) 형태로 저장된 Blob (Binary Large Object) 을 의미합니다.

파이썬에서 image.blob을 numpy.array로 변환하려면, 이진 데이터를 이미지로 디코딩한 다음, 다시 배열로 변환해야 합니다. 가장 일반적인 방법은 Pillow 또는 OpenCV를 사용하는 것입니다.

 

 

✅ 방법 1: Pillow + numpy

from PIL import Image
import numpy as np
import io

# image.blob 이 있다고 가정
img_blob = image.blob  # bytes 형태

# BytesIO로 감싸서 Pillow 이미지로 변환
img = Image.open(io.BytesIO(img_blob))

# numpy 배열로 변환
img_array = np.array(img)

 

 

✅ 방법 2: OpenCV + numpy

import numpy as np
import cv2

# image.blob 이 있다고 가정
img_blob = image.blob  # bytes 형태

# numpy 배열로 변환하고 OpenCV로 디코딩
nparr = np.frombuffer(img_blob, np.uint8)
img_array = cv2.imdecode(nparr, cv2.IMREAD_COLOR)  # 또는 IMREAD_UNCHANGED

 

📌 주의할 점

  • 이미지 포맷에 따라 Image.open 또는 cv2.imdecode 가 실패할 수 있습니다. JPEG/PNG 등 표준 포맷이어야 합니다.
  • image.blob이 진짜 blob인지, 그냥 파일 경로 혹은 base64 같은 다른 형태인지 먼저 확인하는 게 중요합니다.