.mat格式文件是什么?及将png,jpg,bmp,gif,tiff,psd等格式图片转为.mat格式(附代码) 您所在的位置:网站首页 mix文件是什么 .mat格式文件是什么?及将png,jpg,bmp,gif,tiff,psd等格式图片转为.mat格式(附代码)

.mat格式文件是什么?及将png,jpg,bmp,gif,tiff,psd等格式图片转为.mat格式(附代码)

2024-07-09 04:44| 来源: 网络整理| 查看: 265

很多深度学习网络的输入要求为.mat格式,当然也可以直接修改输入数据的代码,比如修改为使用OpenCV读取图片等,但有些网络修改起来比较麻烦,且.mat数据有很多优势,所以部分网络最好还是用默认的.mat格式数据

目录 一、.mat格式文件1.1 .mat格式文件是什么1.2 为什么有的深度学习网络要求是.mat个数数据1.2.1 数据组织1.2.2 数据预处理1.2.3 兼容性1.2.4 数据共享 二、常见的图片格式2.1 .jpeg2.2 .png2.3 .gif2.4 .psd2.5 .tiff2.6 .bmp2.7 .pcx2.8 .tga2.8 .exif2.10 .fpx2.11 .svg2.12 .CR3 三、 转.mat格式代码3.1 修改参数3.2 代码3.3 转换结果3.4 .mat文件中的数据 四、总结

一、.mat格式文件 1.1 .mat格式文件是什么

.mat 文件是 MATLAB 的数据存储的标准格式。这种文件是标准的二进制文件,也可以以 ASCII 码的形式保存和加载。.mat 文件的方便之处在于,它可以连同数据的变量名一同保存下来,并且不需要控制数据的存储格式,MATLAB 会自动保存并区分我们所存储的内容。

例如,想在MATLAB 中方便地保存和加载数据,你可以使用 save 命令来生成 .mat 文件。下面是一个具体的例子:

% 创建一个3行3列的矩阵A并保存为.mat文件 A = magic(3); save("Test.mat","A")

如果你想打开 .mat 文件,可以使用 load 命令。例如:

% 直接导入数据:两种方法 load("Test.mat") load Test.mat 1.2 为什么有的深度学习网络要求是.mat个数数据

.mat 文件提供了一种方便、高效的方式来存储和共享用于深度学习的数据。

深度学习网络可能会要求使用 .mat 文件格式的数据,主要有以下几个原因:

1.2.1 数据组织

.mat 文件是 MATLAB 的数据存储的标准格式,可以存储多种类型的数据,包括矩阵、图像、音频、文本等。这种格式的文件可以将多个相关的数据集组织在一起,方便进行批量处理和分析。

1.2.2 数据预处理

在深度学习中,数据预处理是一个重要的步骤。.mat 文件可以存储预处理后的数据,例如归一化、标准化、特征提取等处理后的数据。这样,深度学习网络可以直接使用预处理后的数据,无需再进行这些处理步骤。

1.2.3 兼容性

许多深度学习工具和库,如 TensorFlow、Keras、PyTorch 等,都可以读取 .mat 文件中的数据。这意味着,无论你使用哪种深度学习工具或库,都可以方便地使用 .mat 文件中的数据。

1.2.4 数据共享

.mat 文件是一种通用的数据格式,可以在不同的平台和工具之间进行共享。这意味着,如果你的深度学习网络需要使用别人的数据,或者你想分享你的数据给别人,.mat 文件是一个很好的选择。

二、常见的图片格式 2.1 .jpeg JPEG:也叫做 JPG 或 JPE 格式,是最常用的一种文件格式,特别适合应用于互联网,可以将图像压缩在很小的储存空间。 2.2 .png PNG:PNG 图片支持透明背景,适合制作透明背景的图片,如 logo 等。 2.3 .gif GIF:GIF 格式的最大特点是支持动态图片,并且支持透明背景。网络上绝大部分动图、表情包都是 GIF 格式的。 2.4 .psd PSD:PSD 格式是 Photoshop 默认的存储格式,适用于存储源文档和工作文件,修改起来比较方便。 2.5 .tiff TIFF:TIFF 格式,也叫做或 TIF 格式,可以支持不同颜色模式、路径、透明度、以及通道,是打印文档中最常用的格式。 2.6 .bmp

BMP:BMP 格式是 Windows 操作系统中的标准图像文件格式,能够被多种 Windows 应用程序所支持。

.bmp格式图像通常比其他格式图像更大,因为它不采用任何压缩。

由于.bmp格式图像不进行压缩,因此它能保持图像的原始质量。然而,.jpg等格式由于使用了有 损压缩,可能会导致图像质量下降。

.bmp格式图像是一种位图图像,它记录了图像中每一个像素的颜色信息。

2.7 .pcx PCX:PCX是一种光栅图像文件格式,用作PC画笔应用程序的本机文件格式。PCX文件的大小更小,因为它们是使用RLE编码压缩的。 2.8 .tga TGA:TGA是一种图像文件格式,由美国Truevision公司为其显示卡开发。TGA文件支持256色调色板或全24位的RGB,图像大小最多达64K*64K像素。 2.8 .exif EXIF:EXIF是一种图像文件格式,实际上Exif格式就是在JPEG格式头部插入了数码照片的信息,包括拍摄时的光圈、快门、白平衡、ISO、焦距、日期时间等各种和拍摄条件以及相机品牌、型号、色彩编码、拍摄时录制的声音以及GPS全球定位系统数据、缩略图等。 2.10 .fpx FPX:FPX是一个拥有多重解像度的图像格式,即图像被储存成一系列高低不同的解像度,而这种格式的好处是当图像被放大时仍可保持图像的质量。 2.11 .svg SVG:SVG格式文件是可缩放矢量图形文件的缩写,是一种用于在互联网上渲染二维图像的标准图形文件类型。与其他流行的图像文件格式不同,SVG格式文件将图像存储为矢量,这是一种基于数学公式的图形,由点、线、曲线和形状组成。 2.12 .CR3 CR3:.CR3 文件是佳能相机拍摄的原始图像的文件格式。这是佳能最新的原始格式,它在2018年后推出的大多数专业装备都支持这种格式。CR3格式对专业照片编辑最有用,使他们能够获得未经处理的图像。然后,他们可以使用这些原始信息,随心所欲地对照片进行造型或其他处理。目前只有佳能EOS M50、EOS R、EOS RP这三款相机的记录格式是CR3。 三、 转.mat格式代码 3.1 修改参数

代码具体使用,学者只需要对应修改下面三个地方即可,我给的例子中是将.png格式图片转为.mat格式,如果要转换其它格式的图片,只需要将input_type修改为jpg或者bmp等即可:

在这里插入图片描述

3.2 代码 # 转换单个文件夹中的所有图片为mat格式 import sys import cv2 import os import numpy as np from scipy.io import savemat import time def findFiles(root_dir, filter_type, reverse=False): print("Finding files ends with \'" + filter_type + "\' ...") separator = os.path.sep paths = [] names = [] files = [] for parent, dirname, filenames in os.walk(root_dir): for filename in filenames: if filename.endswith(filter_type): paths.append(parent + separator) names.append(filename) for i in range(paths.__len__()): files.append(paths[i] + names[i]) print(names.__len__().__str__() + " files have been found.") paths.sort() names.sort() files.sort() if reverse: paths.reverse() names.reverse() files.reverse() return paths, names, files def cvtImgs2MatAndSave(img_dir, file_type, img_key_name, out_path): paths, names, files = findFiles(img_dir, file_type) imgs = [] for i in range(len(files)): tmp_img = cv2.imread(files[i]) imgs.append(tmp_img) img_width = imgs[0].shape[1] img_height = imgs[0].shape[0] num_channel = imgs[0].shape[2] num_imgs = len(imgs) print("Target shape:[", num_imgs, img_height, img_width, num_channel, "]") img_mat = np.zeros([num_imgs, img_height, img_width, num_channel], np.uint8) for i in range(len(imgs)): img_mat[i, :, :, :] = imgs[i] img_dict = {img_key_name: img_mat, '__header__': 'Matlab MAT-file, Created by Xuhui Zhao on ' + time.ctime(), '__version__': '1.0', '__globals__': ''} savemat(out_path, img_dict) return img_dict if __name__ == '__main__': input_img_dir = "TestImages/SIDD/Visible_Images" # input影像块所在文件夹 input_type = "png" # input影像块文件类型 out_dir = "TestImages/SIDD/mat" # mat文件输出文件夹 # 文件默认名如下(与SIDD一致) out_input_mat_name = out_dir + "/BenchmarkNoisyBlocksSrgb.mat" # 如果设置的文件名没有后缀名,再加上 if not (out_input_mat_name.__contains__(".mat") or out_input_mat_name.__contains__(".MAT")): out_input_mat_name = out_input_mat_name + ".mat" # mat文件的key name(与SIDD一致) input_key_name = "BenchmarkNoisyBlocksSrgb" # 将多个影像文件转换成Mat文件 validation-input cvtImgs2MatAndSave(input_img_dir, input_type, input_key_name, out_input_mat_name) 3.3 转换结果

在这里插入图片描述

3.4 .mat文件中的数据

.mat文件中的数据如下

在这里插入图片描述

四、总结

以上讲述了什么是.mat格式文件,以及为什么深度学习网络训练使用.mat格式数据的原因,还科普了一些常见的图片格式,并附上了将png,jpg,bmp,gif,tiff,psd等格式图片转为.mat格式的详细代码。

希望能帮到你,总结不易,多多支持,谢谢!



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有