You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将OpenCV读取的webcam帧作为Keras模型输入并改写原有加载代码

具体改写方案

你需要先通过OpenCV的VideoCapture接口读取摄像头帧,再做格式、尺寸匹配,就能完全适配原Keras的输入逻辑,具体实现如下:


步骤1:导入必要依赖

首先确认导入所需的工具库:

import cv2
from tensorflow.keras.preprocessing import image
import numpy as np

步骤2:替换原有代码的完整逻辑

替换img = image.load_img(img_path, target_size=(224, 224))这一行的完整代码如下:

# 初始化本地摄像头,参数0默认调用设备自带的第一个摄像头
cap = cv2.VideoCapture(0)
# 读取一帧画面,ret返回布尔值表示是否读取成功,frame是采集到的原始帧
ret, frame = cap.read()

if ret:
    # OpenCV默认读取的帧为BGR格式,需要转为Keras要求的RGB格式
    frame_rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
    # 调整尺寸到模型要求的224*224
    frame_resized = cv2.resize(frame_rgb, (224, 224))
    # 转为和image.load_img输出完全一致的PIL对象,后续原逻辑无需任何修改
    img = image.array_to_img(frame_resized)

# 用完释放摄像头资源
cap.release()

可选优化

如果后续你直接把数据喂给模型,不需要保留PIL对象格式,可以直接处理数组省略转PIL的步骤:

# 接上面resize后的frame_resized
x = np.expand_dims(frame_resized, axis=0) # 增加batch维度
x = x / 255.0 # 如果模型要求归一化则增加这一步
# 直接输入模型即可:model.predict(x)

内容的提问来源于stack exchange,提问作者Emad Alomari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 20:36:08