ValueError: операнды не могут быть переданы вместе с фигурами (1131,267,3) (267,1131,3), строка: img = np.multiply (heatmap, 0.5) + img_ori - PullRequest
0 голосов
/ 15 апреля 2020

Я получаю эту ошибку при попытке создать тепловую карту вокруг обнаруженной части изображения. Приложение работает нормально, если квадратные изображения загружаются в веб-приложение. Но он выдает ошибку выше, если изображения не в форме. Как мне сделать рефакторинг, чтобы код принимал изображения, которые не являются квадратными? Почему появляется ошибка для неквадратных изображений? Ошибка возникает, когда я пытаюсь это: img = np.multiply (heatmap, 0.5) + img_ori

 img_transformed = load_image(image_source)
# CAM overlay
# Get the 512 input weights to the softmax.
class_weights = model.layers[-1].get_weights()[0]
final_conv_layer = get_output_layer(model, "bn")
get_output = kb.function([model.layers[0].input], [final_conv_layer.output, model.layers[-1].output])
[conv_outputs, predictions] = get_output([np.array([img_transformed])])
conv_outputs = conv_outputs[0, :, :, :]
index=np.argmax(predictions, axis=-1)
index=index[0][0][0]

# Create the class activation map.
cam = np.zeros(dtype=np.float32, shape=(conv_outputs.shape[:2]))
for i, w in enumerate(class_weights[index]):
    cam += w * conv_outputs[:, :, i]
# print(f"predictions: {predictions}")
cam /= np.max(cam)
cam = cv2.resize(cam, img_ori.shape[:2])
heatmap = cv2.applyColorMap(np.uint8(255 * cam), cv2.COLORMAP_JET)
heatmap[np.where(cam < 0.2)] = 0
#img = heatmap * 0.5 + img_ori
img = np.multiply(heatmap,0.5) + img_ori
cv2.imwrite(output_path, img)
return output_path
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...