首次完成时间:2024 年 11月 20 日
1. 使用OpenCV的dnn模块实现图像分类。
1)程序代码:
import numpy as np
import cv2
# 解析标签文件
row = open("model1/synset_words.txt").read().strip().split("\n")
class_label = [r[r.find(" "):].split(",")[0] for r in row]
# 载入caffe所需的配置文件
net = cv2.dnn.readNetFromCaffe("model1/bvlc_googlenet.prototxt",
"model1/bvlc_googlenet.caffemodel")
# 读取待分类图像
img = cv2.imread("photos/cat.jpg") # 确保这里的路径是正确的
# 转换格式
blob = cv2.dnn.blobFromImage(img, 1, (224, 224), (104, 117, 123))
# 加载图像
net.setInput(blob)
# 预测
preds = net.forward()
# 排序,取概率最大的结果
idx = np.argsort(preds[0])[-1]
# 获取图片的原始尺寸
(h, w) = img.shape[:2]
# 等比例缩减图片大小
resized_img = cv2.resize(img, (w // 4,