Heat map for misclassified image

i am getting this error
Traceback (most recent call last):
File “C:\Users\Ali\PycharmProjects\pythonProject1\heatMap.py”, line 629, in
heatmap_overlay = cv2.addWeighted(np.array(image), 0.7, np.array(heatmap), 0.3, 0)
TypeError: Expected cv::UMat for argument 'src
from captum.attr import IntegratedGradients

Function to generate attributions using Integrated Gradients

def generate_integrated_gradients_attributions(model, input_image, target_label):
integrated_gradients = IntegratedGradients(model)
attributions = integrated_gradients.attribute(input_image, target=target_label)
return attributions

Example usage:

Load and preprocess the image

image_path = “I:\K_Folds\PlantDoc\Fold1\Testing\AP_C\AP_C_72.jpg”
image = Image.open(image_path)
input_image = heatmap_transform(image)
input_image = input_image.unsqueeze(0).to(device)

Define your model

model = YourModelClass()


Get the true label for the image (replace with your label)

true_label = 0

Generate attributions using Integrated Gradients

attributions = generate_integrated_gradients_attributions(model, input_image, target_label=true_label)

heatmap = viz.visualize_image_attr(attributions[0].cpu().numpy(),
method=“heat_map”)[0] # Extract the heatmap from the tuple
heatmap_overlay = cv2.addWeighted(np.array(image), 0.7, np.array(heatmap), 0.3, 0)

Display the original image and the heatmap overlay

plt.subplot(1, 2, 1)
plt.title(‘Original Image’)
plt.subplot(1, 2, 2)
plt.title(‘Heatmap Overlay’)

Based on the error message it seems to be an OpenCV related error.
If you get stuck, post a properly formatted, minimal, and executable code snippet reproducing the error.