У меня есть вопрос о рабочем домене функции OpenCV resize
при использовании интерполяции INTER_AREA
. Вот три различных интерполяции:
import cv2
import numpy as np
cv2.resize(np.zeros((17, 99, 99), dtype=np.uint8), (64, 32), interpolation=cv2.INTER_AREA)
# OK
cv2.resize(np.zeros((200, 64, 4), dtype=np.uint8), (64, 32), interpolation=cv2.INTER_AREA)
# OK
cv2.resize(np.zeros((200, 64, 64), dtype=np.uint8), (64, 32), interpolation=cv2.INTER_AREA)
# error: OpenCV(4.1.1) ..\modules\imgproc\src\resize.cpp:3557: error: (-215:Assertion failed) func != 0 && cn <= 4 in function 'cv::hal::resize'
Первые два работают нормально, но последний не проходит. С чего бы это? Какая комбинация формы ввода / вывода приемлема?
(Обратите внимание, что вопрос относится только к INTER_AREA
, так как другие схемы интерполяции, похоже, работают во всех трех случаях).