Programming Error/Python

[OpenCV 오류] cv2.error: OpenCV(4.5.2) :-1: error: (-5:Bad argument) in function 'resize'

Barca 2021. 6. 7. 16:35

cv2.error: OpenCV(4.5.2) :-1: error: (-5:Bad argument) in function 'resize'

 

위 명령어는 OpenCV-python를 사용할 때, resize 명령어로 이미지 크기를 조절할때 발생하는 명령어입니다.

원인은 이미지의 shape이 맞지 않거나, 이미지(Array)의 Type이 맞지 않아서 발생합니다.

 

1) img.shape을 print하여 None 타입이 아닌지를 확인

2) img의 Type이 Python의 기본 int인 경우에 발생합니다. 그럴 경우 아래와 같이 Type을 uint8 or 16, int16으로 바꿔주면 정상적으로 Resize가 됩니다. 픽셀 값의 범위가 0~255가 아니라 0~1인 경우 np.float32를 주면 됩니다.

img = img.astype(np.uint8) # 8, 16
or
img = img.astype(np.int16)

 

다만, 위 코드를 수행하면서 np.uint32,64 & np.int8,32,64 & np.float16, 64에 대해서도 실험을 해보았는데,

opencv\modules\imgproc\src\resize.cpp:3869: error: (-215:Assertion failed) func != 0 in function 'cv::hal::resize' 또는 TypeError: Expected Ptr<cv::UMat> for argument 'src' 와 같은 에러가 발생하였습니다.

이유는 정확하게 모르겠으나 Resize를 할 때, 크기 관련 문제인 것으로 보입니다.