当前位置: 首页 > news >正文

做海报找背景图有哪些网站友情链接交换教程

做海报找背景图有哪些网站,友情链接交换教程,内江做网站,临朐网站建设定制模型训练识别手写数字(一)使用手写数字图像进行模型测试 一、生成手写数字图像 1. 导入所需库 import cv2 import numpy as np import oscv2用于计算机视觉操作。 numpy用于处理数组和图像数据。 os用于文件和目录操作。 2. 初始化画布 canvas np.z…

模型训练识别手写数字(一)使用手写数字图像进行模型测试

一、生成手写数字图像

1. 导入所需库

import cv2
import numpy as np
import os

cv2用于计算机视觉操作。

numpy用于处理数组和图像数据。

os用于文件和目录操作。

2. 初始化画布

canvas = np.zeros((280, 280), dtype="uint8")

创建一个280x280的黑色画布(值为0表示黑色)。 

 3. 鼠标回调函数

def draw(event, x, y, flags, param):if event == cv2.EVENT_MOUSEMOVE and flags == cv2.EVENT_FLAG_LBUTTON:cv2.circle(canvas, (x, y), 5, 255, -1)

draw函数在鼠标移动时绘制白色圆点(值为255)到画布上。圆点的半径为5像素。 

 4. 创建窗口并设置回调

cv2.namedWindow("Canvas")
cv2.setMouseCallback("Canvas", draw)

创建一个名为“Canvas”的窗口,并设置鼠标回调函数。 

  5. 主循环

while True:cv2.imshow("Canvas", canvas)key = cv2.waitKey(1) & 0xFF

不断显示画布,等待用户输入。 

   6. 处理用户输入

if key == ord('c'):canvas = np.zeros((280, 280), dtype="uint8")
elif key == ord('q'):break

按 'c' 键清空画布,按 'q' 键退出循环。 

    7. 保存图像目录

save_dir = "Data"
if not os.path.exists(save_dir):os.makedirs(save_dir)

检查并创建保存图像的目录。 

     8. 保存图像文件

save_path = os.path.join(save_dir, "handwritten_digit.png")
if cv2.imwrite(save_path, canvas):print(f"Image saved successfully at {save_path}")
else:print("Failed to save image.")

将画布保存为PNG文件,并输出保存状态。 

  9. 关闭窗口 

cv2.destroyAllWindows()

关闭所有OpenCV窗口。 

二、调用训练的模型进行测试

1. 导入所需库

import cv2
import matplotlib.pyplot as plt
import numpy as np
from keras.api.models import load_model

cv2用于图像处理。

matplotlib.pyplot用于可视化结果。

numpy用于数值计算。

load_model用于加载训练好的Keras模型。

2. 加载训练的模型 

model = load_model("my_model.h5")

从文件中加载训练好的模型。

 3. 加载手写数字图像

original_img = cv2.imread("Data/handwritten_digit.png", cv2.IMREAD_GRAYSCALE)

读取手写数字图像,并以灰度模式加载。 

 4. 处理图像用于预测 

img = cv2.resize(original_img, (28, 28))  # 调整为28x28大小
img = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY_INV)[1]  # 二值化
img = img.astype('float32') / 255  # 归一化

 将图像调整为28x28像素,这是模型所需的输入尺寸。

使用阈值处理将图像二值化(黑白),并将背景设置为白色,手写数字为黑色。

将图像数据归一化到[0, 1]范围。

  5. 调整图像形状以便于预测

img = img.flatten()  # 展平为一维数组
img = img.reshape(1, 784)  # 调整形状为 (1, 784)

将28x28的图像展平为784个像素值的单行数组,以适应模型的输入格式。 

6. 进行预测

predictions = model.predict(img)
predicted_class = np.argmax(predictions, axis=1)

 7. 可视化预测结果

plt.figure(figsize=(6, 6))# 显示原图
plt.imshow(original_img, cmap='gray', aspect='equal')  # 使用原始图像
plt.title(f'Predicted: {predicted_class[0]}', fontsize=14)
plt.axis('off')plt.tight_layout()
plt.show()

创建一个图形窗口,并显示原始图像。

在标题中显示模型预测的类别。

使用tight_layout()优化图形布局,并显示图形。

手写8,预测却是2;说明模型在训练集上表现良好,但在测试却表现差。

目前使用的是一个全连接神经网络(Feedforward Neural Network)。这个网络的结构通常包括以下几个部分:

  1. 输入层:接受输入数据,例如在你的例子中是手写数字的像素值。
  2. 隐藏层:通过全连接的方式进行计算,使用激活函数(如 ReLU)引入非线性。
  3. 输出层:生成预测结果,通常使用 softmax 激活函数进行分类。

全连接神经网络在处理图像时通常需要将输入图像展平(flatten),这可能导致对空间特征的捕捉不够有效,因此卷积神经网络(CNN)更适合图像数据,因为它们能够利用卷积层自动提取空间特征,从而提高分类性能。

http://www.mmbaike.com/news/83373.html

相关文章:

  • app网站开发成本优化大师网页版
  • 建设机械网站平台seo服务深圳
  • 网站备案号查询网快速网站排名提升工具
  • 购物网站制作流程网站编辑怎么做
  • 网站优化自己做该怎么做苏州做网站的专业公司
  • 网站备案授权热点新闻事件今日最新
  • 做mod的网站广告发布平台app
  • 小程序订货系统北京seo产品
  • 图解asp.net网站开发实战网站平台如何推广
  • 国内最大的网站制作公司seo排名优化技巧
  • 品牌网站推广东莞关键词自动排名
  • 全国网站建设哪家专业360优化大师官方版
  • 做网站珠海今日新闻头条最新消息
  • 做app和做网站2022年seo还值得做吗
  • 池州公司做网站百度合伙人答题兼职赚钱
  • 网站开发文档怎么写百度关键词优化排名
  • 简单的设计网站网站制作免费
  • ps网站导航条素材西安seo优化推广
  • 大鹏网站建设手游推广去哪里找客源
  • 茶叶网站建设网络营销的推广方式都有哪些
  • 有哪些做海岛的网站网络营销活动策划方案模板
  • 网站建设需求文档模板想要网站推广版
  • 自助建设分销商城网站seo网站推广案例
  • 白银区住房和城乡建设局网站app开发者需要更新此app
  • 上海网站建设 网页做唐山网站建设方案优化
  • asp动态网站开发毕业设计广西网站seo
  • 盘锦网站制作公司百度收录比较好的网站
  • 做个网站多钱永久免费自动建站
  • ps做登录网站中国万网域名注册服务内容
  • 南宁做网店河南seo优化