사건:
아래와 같은 코드가 있었다...
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
'기타 정보' 카테고리의 다른 글
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 |
댓글