본문 바로가기
기타 정보

[OpenCV] OpenCV로 image resize를 하면 channel이 사라진다?

by 귤이두번 2022. 2. 10.

사건:

아래와 같은 코드가 있었다...

low_4 = tf.keras.preprocessing.image.img_to_array(
                        tf.reshape(test_x[1][p] * 255, [test_height // mag, test_width // mag]))
low_4 = cv2.resize(low_4, (int(test_width), int(test_height)), interpolation=cv2.INTER_CUBIC)
cv2.imwrite(result_path + "/" + str(p) + "_low_4" + ".jpg", low_4)

 

low_4라는 ndarray를 cv2.resize()를 사용해 크기를 바꿨는데(4배 키웠음)

 

그 결과

 

처음에 low_4.shape는 (180, 320, 1)이었는데

(720, 1280)으로 바뀌었다

 

크기는 커졌는데 채널은 어디갔을까

 

OpenCV에서는 원래 그렇다한다

cv2.resize()는 채널이 1개이면 드롭해버린다...

import numpy as np
import cv2

img1 = np.random.random((64, 64, 1)) * 255
img2 = np.random.random((64, 64, 3)) * 255

cv2.resize(img1.astype(np.uint8), (256, 256)).shape
# Output (256, 256)
cv2.resize(img2.astype(np.uint8), (256, 256)).shape
# Output (256, 256, 3)

 

참고

https://stackoverflow.com/questions/68502581/image-channel-missing-after-resizing-image-with-opencv

 

Image channel missing after resizing image with OpenCV

After resizing, the channel of the binary image is not showing. For this reason I had to use np.expand_dims method. Any solution to how I can overcome this situation, Thanks. img = cv2.resize(img,(...

stackoverflow.com

 

 

 

'기타 정보' 카테고리의 다른 글

Optical Flow  (0) 2022.04.01
논문 scheme 뜻  (0) 2022.03.06
Video Super Resolution Based on Deep Learning  (0) 2022.02.28
BasicSR Project 사용하기  (0) 2022.02.12
[Ubuntu] sh파일을 이용해 wget 여러번 하기  (1) 2022.02.04

댓글