卷积可视化:特征图的可视化

import keras
import matplotlib.pyplot as plt
from keras.applications.vgg16 import VGG16
from keras.preprocessing import image
from keras.applications.vgg16 import preprocess_input
import numpy as np

import numpy as np
import tensorflow as tf

model = VGG16(weights='imagenet', include_top=False)

img_path = 'elephants.jpg'
img = image.load_img(img_path, target_size=(224, 224))
x = image.img_to_array(img)
x = np.expand_dims(x, axis=0)
x = preprocess_input(x)

features = model.predict(x)

features = np.mean(features, -1, keepdims=False)[0]

import cv2

features = cv2.resize(features, (224, 224), interpolation=cv2.INTER_LINEAR)

features /= np.max(features)

norm_img = np.zeros(features.shape)
# cv2.normalize(features, norm_img, 0, 255, cv2.NORM_MINMAX)
norm_img = np.asarray(features * 255, dtype=np.uint8)

heat_img = cv2.applyColorMap(norm_img, cv2.COLORMAP_JET) # 注意此处的三通道热力图是cv2专有的GBR排列
# heat_img = cv2.cvtColor(heat_img, cv2.COLOR_BGR2RGB)# 将BGR图像转为RGB图像

origin = cv2.resize(cv2.imread(img_path), (224, 224))

img_add = cv2.addWeighted(origin, 0.3, heat_img, 0.7, 0)

img = cv2.cvtColor(img_add, cv2.COLOR_BGR2RGB)

plt.figure("Image") # 图像窗口名称
plt.imshow(img)
plt.axis('on') # 关掉坐标轴为 off
plt.title('image') # 图像题目
plt.show()

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值