首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

动手学AI(8)识别摄像头拍摄的手写数字

动手学AI系列文章介绍了用opencv调用摄像头的方法和用训练神经网络识别手写数字的方法。

如何把这两者结合起来,使用神经网络能识别摄像头拍摄到的图像呢?

一、保存及调用训练好的神经网络模型:

在上篇文章代码的末尾加上两行代码,用于保存神经网络模型。

import h5py

model.save('picturelearn.h5')

在以后的程序中,就只要调用此模型,进行手写数字识别。

调用神经网络模型:

from keras.models import load_model

model=load_model('picturelearn.h5')

二、识别摄像头拍摄的手写数字

使用网络前,要捕获摄像头图片,并对图片进行处理与识别。

import numpy as np

import cv2

cap = cv2.VideoCapture(0)

while(cap.isOpened()):

# 从摄像头读取一帧,ret是表明成功与否

ret, frame = cap.read()

if ret:

cv2.imshow('frame',frame)

#处理图片

gray=cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)#灰度图

number=gray[50:330,180:460]#截取图片中间部分(数字区域)

little=cv2.resize(number,(28,28),interpolation=cv2.INTER_CUBIC)#图片大小改成28*28

ret,thresh=cv2.threshold(little,127,255,cv2.THRESH_BINARY_INV)#二值化,反转

X=thresh.reshape(1,784).astype('float32')#修改成神经网络所要求的数据形状

x=X/255#归一化

result=model.predict(x)[0]#识别

res=np.argmax(result)#提取识别结果

print(res)#显示识别结果

else:

break

if cv2.waitKey(1) & 0xFF == ord('q'):

break

cap.release()

cv2.destroyAllWindows()

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181111G006Q200?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券