python中利用已有h5模型调用摄像头识别水果并框选出水果位置以及注明标签
时间: 2024-05-06 18:22:09 浏览: 268
以下是一个简单的示例代码,使用已有的h5模型调用摄像头识别水果并框选出水果位置以及注明标签:
```python
import cv2
import numpy as np
import tensorflow as tf
from tensorflow import keras
# 加载模型
model = keras.models.load_model('fruit_model.h5')
# 标签列表
labels = ['apple', 'banana', 'orange', 'pear']
# 打开摄像头
cap = cv2.VideoCapture(0)
while True:
# 读取摄像头帧
ret, frame = cap.read()
# 调整帧大小和颜色通道
frame = cv2.resize(frame, (224, 224))
frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
# 预处理帧
frame = np.expand_dims(frame, axis=0)
frame = tf.keras.applications.mobilenet_v2.preprocess_input(frame)
# 预测水果类别
preds = model.predict(frame)
class_idx = np.argmax(preds)
label = labels[class_idx]
# 绘制框选区域和标签
cv2.putText(frame, label, (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 2)
cv2.rectangle(frame, (0, 0), (224, 224), (0, 255, 0), 2)
# 显示框选结果
cv2.imshow('Fruit Detection', frame)
# 按下q键退出循环
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 释放摄像头和窗口
cap.release()
cv2.destroyAllWindows()
```
在该示例代码中,我们首先加载了预训练的水果识别模型,然后打开了摄像头并循环读取摄像头帧,预测水果类别并绘制框选区域和标签,最后显示框选结果。按下q键即可退出循环。请注意,该示例代码仅供参考,实际应用时可能需要对其进行适当修改以满足需求。
阅读全文