OpenCV+CNN手写数字实时识别项目(三):本地手写数字识别

调用CNN模型,识别本地的手写数字图片

在实现实时识别手写数字之前先实现本地图片的识别,这里的本地图片是从画图里面自己手写导出的(手动设置为28*28大小的)。在这里插入图片描述
值得注意的是,需要将图片数据转化为
程序如下:

import tensorflow as tf
import numpy as np
from tensorflow import keras
import matplotlib.pyplot as plt
from tensorflow.keras import layers, optimizers, datasets

#%%
image_size = 28
x_image = tf.io.read_file('./my_models/number.png')
decode_img = tf.image.decode_png(x_image,channels=1)    # 读取完成后需解码
print(decode_img.shape)     # (28,28,1)
decode_img = tf.image.convert_image_dtype(decode_img, tf.float32)   # 转换为float32格式
test_img = tf.image.resize(decode_img,[image_size,image_size])
test_img = tf.reshape(test_img,[-1,image_size,image_size,1])
test_img = tf.keras.utils.normalize(test_img, axis=1)   # 归一化
test_img = test_img.numpy()     # 需要转换为numpy类型
test_label = np.array([3])      # 需要转换为数组类型
print(decode_img.shape)

# 查看图片
plt.imshow(np.squeeze(decode_img),cmap=plt.cm.binary)   # imshow只能打印出二维图像或第三维度是3和4的三维图像
plt.show()

#%%
# 重载模型
Saved_model = tf.keras.models.load_model('./my_models/MNIST_CNN_model.h5')
#%%
# 预测的权值
predictions = Saved_model.predict(test_img)
print(predictions)
print("预测结果为:{}".format(np.argmax(predictions[0])))
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值