본문 바로가기
파이썬

파이썬 회색조 이미지를 3 채널 이미지로 변환

by º기록 2020. 10. 27.
반응형

(height, width) 모양의 회색조 이미지를 (height, width, nchannels) 모양의 3 채널 이미지로 변환하고 싶습니다. 작업은 for-loop 로 수행되지만 깔끔한 방법이 있어야합니다. 다음은 프로그램의 조각 코드입니다. 누군가 힌트를 줄 수 있습니까? 조언 부탁드립니다.

 30         if img.shape == (height,width): # if img is grayscale, expand
 31             print "convert 1-channel image to ", nchannels, " image."
 32             new_img = np.zeros((height,width,nchannels))
 33             for ch in range(nchannels):
 34                 for xx in range(height):
 35                     for yy in range(width):
 36                         new_img[xx,yy,ch] = img[xx,yy]
 37             img = new_img

 

해결 방법

 

np.stack 을 사용하여 훨씬 더 간결하게 수행 할 수 있습니다.

img = np.array([[1, 2], [3, 4]])
stacked_img = np.stack((img,)*3, axis=-1)
print(stacked_img)
 # array([[[1, 1, 1],
 #         [2, 2, 2]],
 #        [[3, 3, 3],
 #         [4, 4, 4]]])

 

참조 페이지 https://stackoverflow.com/questions/40119743

 

 

반응형

댓글