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

关于茶叶网站模板i设计

关于茶叶网站模板,i设计,佛山公司网站设计团队,php网站开发接口开发文件的解析使用python的struct模块,接下来会用到的2个方法: 解包unpack()方法 : 使用该方法可以从写好的二进制文件中读出文件。它的函数原型为:struct.unpack(fmt,string),fmt参数是格式字符串。string表示要转换的python值。最终函数返回一个元组。 calcsize()方法 : 该方法用…文件的解析使用python的struct模块,接下来会用到的2个方法: 解包unpack()方法 : 使用该方法可以从写好的二进制文件中读出文件。它的函数原型为:struct.unpack(fmt,string),fmt参数是格式字符串。string表示要转换的python值。最终函数返回一个元组。 calcsize()方法 : 该方法用于计算格式字符串所对应的结果长度,如:struct.calcsize(ii),返回8。因为一个i代表一个int类型,占用的长度是4个字节。两个i就是两个int,长度为8个字节。 解析图片文件的核心代码示例如下: def decode_idx3_ubyte(idx3_file):# 读取二进制数据with open(idx3_file, rb) as file:file_data file.read()#定义偏移量初始值为0offset 0# 以大端法读取4个 unsinged int32file_header iiii #解析文件头信息依次为魔数、图片数量、每张图片高、每张图片宽magic_number, num_images, num_rows, num_cols struct.unpack_from(file_header, file_data, offset)#读取完文件头信息后偏移量向后移动16位offset struct.calcsize(file_header)#以图片的像素大小读取图片file_image str(num_rows * num_cols) B#生成和图片数量相同的数组且每个数组的形状大小等于图片的像素大小images np.empty((num_images, num_rows, num_cols))#循环读取每个图片的像素信息for i in range(num_images):image struct.unpack_from(file_image, file_data, offset)#将读取的图片信息按照规定的形状形成数组images[i] np.array(image).reshape((num_rows, num_cols))#每读取完一个图片偏移量向后移动到下一个图片文件的起始位置offset struct.calcsize(file_image)return images 解析函数通过参数接收到测试集图片文件的路径后,以二进制格式rb打开文件,并读取文件数据。 定义一个变量offset,代表偏移量,初始值为0。再定义格式符为4个i。然后解析并读取文件头信息,依次获得魔数、图片的数量,每张图片的高度和宽度。读取完后,使用struct.calcsize方法将偏移量向后移动16位。并定义接下来读取图片文件信息的格式符,即784个字节。 开始读取前,生成和图片数量相同的数组,每个数组的形状大小等于图片的像素大小,以便接下来存储图片。然后循环读取每个图片,并将图片存入数组中。最终将数组返回。 解析图片文件的核心代码示例如下: def decode_idx1_ubyte(idx1_file):#读取二进制数据with open(idx1_file, rb) as file:file_data file.read()#定义偏移量初始值为0offset 0# 以大端法读取4个 unsinged int32file_header ii #解析文件头信息依次为魔数、标签数magic_number, label_num struct.unpack_from(file_header, file_data, offset)#读取完文件头信息后偏移量向后移动8位offset struct.calcsize(file_header)#定义存储标签值的数组labels []#每次读取一个 bytefile_label B#循环读取每个标签的信息 for i in range(label_num):#将读取的标签信息添加到数组中labels.append(struct.unpack_from(file_label, file_data, offset)[0])#每读取完一个标签偏移量向后移动一个byteoffset struct.calcsize(file_label)return labels 解析标签文件的代码逻辑和解析图片文件的逻辑一致。只是需要注意,解析并读取的标签文件头信息,只有魔数和标签数。且在循环读取标签时,每次读取一个字节。 解析成功后,会在指定的文件夹下生成相应的文件夹,其中存放了解析后的图片。 完整示例代码如下: import struct import numpy as np import os import cv2def decode_idx3_ubyte(idx3_file):# 读取二进制数据with open(idx3_file, rb) as file:file_data file.read()#定义偏移量初始值为0offset 0# 以大端法读取4个 unsinged int32file_header iiii #解析文件头信息依次为魔数、图片数量、每张图片高、每张图片宽magic_number, num_images, num_rows, num_cols struct.unpack_from(file_header, file_data, offset)#读取完文件头信息后偏移量向后移动16位offset struct.calcsize(file_header)#以图片的像素大小读取图片file_image str(num_rows * num_cols) B#生成和图片数量相同的数组且每个数组的形状大小等于图片的像素大小images np.empty((num_images, num_rows, num_cols))#循环读取每个图片的像素信息for i in range(num_images):image struct.unpack_from(file_image, file_data, offset)#将读取的图片信息按照规定的形状形成数组images[i] np.array(image).reshape((num_rows, num_cols))#每读取完一个图片偏移量向后移动到下一个图片文件的起始位置offset struct.calcsize(file_image)return imagesdef decode_idx1_ubyte(idx1_file):#读取二进制数据with open(idx1_file, rb) as file:file_data file.read()#定义偏移量初始值为0offset 0# 以大端法读取4个 unsinged int32file_header ii #解析文件头信息依次为魔数、标签数magic_number, label_num struct.unpack_from(file_header, file_data, offset)#读取完文件头信息后偏移量向后移动8位offset struct.calcsize(file_header)#定义存储标签值的数组labels []#每次读取一个 bytefile_label B#循环读取每个标签的信息 for i in range(label_num):#将读取的标签信息添加到数组中labels.append(struct.unpack_from(file_label, file_data, offset)[0])#每读取完一个标签偏移量向后移动一个byteoffset struct.calcsize(file_label)return labelsdef check_folder(folder):#检查文件文件夹是否存在不存在则创建if not os.path.exists(folder):os.mkdir(folder)print(folder)else:if not os.path.isdir(folder):os.mkdir(folder)def export_img(exp_dir, img_ubyte, lable_ubyte): check_folder(exp_dir)#生成数据集images decode_idx3_ubyte(img_ubyte)labels decode_idx1_ubyte(lable_ubyte)nums len(labels)for i in range(nums):img_dir os.path.join(exp_dir, str(labels[i]))check_folder(img_dir)img_file os.path.join(img_dir, str(i).png)imarry images[i]cv2.imwrite(img_file, imarry)def parser_mnist(file_dir):#在指定的路径下创建一个文件夹“train”用于保存解析后的图片和标签train_dir os.path.join(file_dir, train)#获得训练集图片文件的路径train_img_ubyte os.path.join(file_dir, train-images.idx3-ubyte)#获得训练集标签文件的路径train_label_ubyte os.path.join(file_dir, train-labels.idx1-ubyte)export_img(train_dir, train_img_ubyte, train_label_ubyte)#在指定的路径下创建一个文件夹“test”用于保存解析后的图片和标签test_dir os.path.join(file_dir, test)#获得测试集图片文件的路径test_img_ubyte os.path.join(file_dir, t10k-images.idx3-ubyte)#获得测试集标签文件的路径test_label_ubyte os.path.join(file_dir, t10k-labels.idx1-ubyte)export_img(test_dir, test_img_ubyte, test_label_ubyte)if __name__ __main__:file_dir D:/MNIST_Download/unzipparser_mnist(file_dir)
http://www.huolong8.cn/news/269158/

相关文章:

  • 做网站后台要学什么wordpress5 升级
  • 织梦多网站网站不备案会怎...
  • 中国十大摄影网站排名h5游戏在线玩
  • 淮南制作网站tp做的网站封装成app
  • 郑州电商网站设计网站开发认证考试
  • p2c网站方案绥化市建设局官方网站
  • 彩票网站什么做北京市建设工程发包承包交易中心
  • 做网站广告有哪些职位wordpress不显示中文图片
  • 网站开发基本语言手工制作收纳盒
  • 中山建网站多少钱曲靖市麒麟区建设局规划网站
  • 花都移动网站建设中小企业网站制作流程
  • 网站建设费怎么做分录企业app怎么做
  • 软件网站建设的目的织梦网站上传的文章只显示摘要不显示内容如何修改
  • 福州开发企业网站巴中网站建设网站推广
  • 淄博有做网站的吗腾讯企业邮箱注册申请
  • 公司怎么建立网站吗哪个网站可以学做标书
  • 做网站15年app设计原则
  • asp 网站开发教程云设计工具
  • 旅游做网站wordpress有中文版吗
  • 路桥网站建设做网站分成
  • 做网站公司怎么赚钱吗深圳证券网站开发
  • 网站建设分金手指专业二八建设部安全员证书查询网站
  • 如何做网站免费wordpress logo大小
  • 做版式的网站seo免费自助建站
  • 哪些网站做家政推广在哪找做调查赚钱的网站
  • 网站内部链接是怎么做的网站建设与运营的预算方案模板
  • 企业网站主要功能广州正规的网站建设
  • 刷赞网站推广永久禅城网页设计
  • 宜昌网站设计企业网站建设主要包括哪些内容
  • 中山做网站哪家便宜外包岗