def preprocess_image(image, target_size):
# grayscale conversion
# cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
im = cv2.cvtColor(cv2.UMat(image), cv2.COLOR_RGB2GRAY)
# resizing image
original_size = im.shape[:2] # get original image size
ratio = float(target_size) / max(original_size) # get ratio
new_size = tuple([int(x * ratio) for x in original_size])
im = cv2.resize(im, (new_size[1], new_size[0]), interpolation=cv2.INTER_CUBIC) # resizing
# padding
delta_w = target_size - new_size[1]
# size difference
delta_h = target_size - new_size[0]
top, bottom = delta_h // 2, delta_h - (delta_h // 2)
left, right = delta_w // 2, delta_w - (delta_w // 2)
color = [0, 0, 0] # padding color ->black
new_im = cv2.copyMakeBorder(im, top, bottom, left, right, cv2.BORDER_CONSTANT, value=color) # create padding
# Contrast Limited Adaptive Histogram Equalization
clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(5, 5))
CLAHE_im = clahe.apply(new_im)
# noise reduction
NR_im = cv2.fastNlMeansDenoising(CLAHE_im)
# sharpening
gaussian_3 = cv2.GaussianBlur(NR_im, (5, 5), 10.0)
unsharp_image = cv2.addWeighted(NR_im, 1.5, gaussian_3, -0.5, 0, NR_im)
# 3channel
im_3ch = np.stack((unsharp_image,) * 3, axis=-1)
return im_3ch
'' '
Итак, в основном он делает снимок и сравнивает его с моделью. Раньше у меня была другая ошибка типа, но теперь все нормально, когда я изменяю этот код 'cv2.cvtColor (image, cv2.COLOR_BGR2GRAY)' на тот, который вы видите наверху. Теперь я получаю эту ошибку «Ошибка типа: Обязательный аргумент« диапазоны »(поз. 2) не найден»
Спасибо!