Notice
Recent Posts
Recent Comments
Link
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Tags
more
Archives
Today
Total
관리 메뉴

ufris

numpy array에서 image 겹치기 및 에러 해결 본문

기타/python

numpy array에서 image 겹치기 및 에러 해결

ufris 2018. 11. 29. 16:24

검은색 배경에 이미지를 겹치기 위해 np.zero를 통해 검은색 배경을 만들어준다


# 세로가 더 길 경우

    if img.shape[0] > img.shape[1]:                            

# numpy로 검은색 배경을 생성                                            

        background = np.zeros((img.shape[0],img.shape[0], 3),dtype=np.uint8) 

 # 이미지를 가운데로 겹치도록 설정

        x_offset = y_offset = img.shape[0] // 2 - (img.shape[1] // 2)   

# 해당 위치에 이미지를 겹침                    

        background[:, x_offset:x_offset + img.shape[1]] = img                              

    else:

# 가로가 더 길 경우

        background = np.zeros((img.shape[1], img.shape[1], 3),dtype=np.uint8) 

        x_offset = y_offset = img.shape[1] // 2 - (img.shape[0] // 2)

        background[y_offset:y_offset + img.shape[0],:] = img


dtype을 uint8로 설정했는데 uint32로 할 경우 cv2.write을 할 때 

img data type = 6 is not supported

라는 에러가 뜨기 때문에 uint6으로 해야한다


또한 float32나 int32로 설정하면 이미지를 겹칠 때 

Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers

라는 에러가 뜨면서 이미지 값들이 모두 1로 변환되서 합쳐진다


                                    



'기타 > python' 카테고리의 다른 글

DICOM image processing  (0) 2022.01.13
리스트 값에서 다른 리스트 값 제거 후 파일 이동  (0) 2018.09.17