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

很多深度学习网络的输入要求为.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 .jpeg
    • 2.2 .png
    • 2.3 .gif
    • 2.4 .psd
    • 2.5 .tiff
    • 2.6 .bmp
    • 2.7 .pcx
    • 2.8 .tga
    • 2.8 .exif
    • 2.10 .fpx
    • 2.11 .svg
    • 2.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 timedef findFiles(root_dir, filter_type, reverse=False):print("Finding files ends with \'" + filter_type + "\' ...")separator = os.path.seppaths = []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, filesdef 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_dictif __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-inputcvtImgs2MatAndSave(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格式的详细代码。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/180818.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【从零开始学习Linux】一文带你了解yum周边生态及vim常见模式

🚩纸上得来终觉浅, 绝知此事要躬行。 🌟主页:June-Frost 🚀专栏:Linux入门 🔭【从零开始学习Linux】系列均属于Linux入门,主要包含Linux操作系统下的指令、操作、权限以及开发工具&a…

​无人机摄影测量

无人机摄影测量技术是传统航空摄影测量手段的有力补充,具有机动灵活、高效快速、精细准确、作业成本低、生产周期短、影像获取空间分辨率高、高危地区探测等优势。无人机与航空摄影测量相结合使得“无人机数字低空遥感”成为航空遥感领域的一个崭新发展方向。无人机…

NoSuchMethodError报错与解决方案

NoSuchMethodError报错与解决方案 一:错误原因 1.1 版本差异 版本差异:该错误发生的一个常见原因是您可能正在使用两个不同的Java版本。在一个版本中,可能具有一个方法,而在另一个版本中不存在。在这种情况下,JVM将…

盘点67个Android系统源码安卓爱好者不容错过

盘点67个Android系统源码安卓爱好者不容错过 学习知识费力气,收集整理更不易。 知识付费甚欢喜,为咱码农谋福利。 源码下载链接:https://pan.baidu.com/s/1zOSFwPJwDJLFfoeRJy9llg?pwd8888 提取码:8888 项目名称 Accelera…

VT-VRPA2-1-1X/V0/T5控制4WRE6比例方向阀放大板

带阀芯位移反馈不带集成式放大器比例方向阀控制放大器,替代力士乐同型号产品,可以完全互换使用;适用于控制力士乐系列带电位置反馈的4WRE6通径和4WRE10通径2X系列比例方向阀;0~10V、4~20mA指令控制信号任意可选;直接安…

[前端] V8引擎编译原理

文章目录 1.什么是V81.1 扫描器Scanner1.2 解析器parser1.3 预解析PreParser1.4 解释器Ignition1.5 编译器TurboFan 1.什么是V8 V8是谷歌的开源高性能JavaScript和WebAssembly引擎,用C编写。它被用于Chrome和Node.js等。它实现ECMAScript和WebAssembly,…

网易区块链

目录 网易区块链 网易区块链 网易区块链成立于2017年,致力于Web3.0区块链技术的研发和应用。自主研发的区块链“天玄”引擎,在单链场景下支持每秒最高30万笔交易,单日可处理上链数据超10亿。 与国家信息中心、杭州互联网公证处等机构合作,支持公证信息存储与算法解决方案…

海康运行管理中心 RCE漏洞复现

0x01 产品简介 海康威视是以视频为核心的智能物联网解决方案和大数据服务提供商。海康运行管理中心是一款功能强大、易于使用的安防管理平台,能满足用户对视频监控、报警管理、设备配置和数据统计等方面的需求,帮助用户建立高效、智能的安防系统。 0x02…

大模型训练为什么用A100不用4090

这是一个好问题。先说结论,大模型的训练用 4090 是不行的,但推理(inference/serving)用 4090 不仅可行,在性价比上还能比 H100 稍高。4090 如果极致优化,性价比甚至可以达到 H100 的 2 倍。 事实上&#x…

2023/11/28JAVAweb学习

查找哪个进程占用了该端口号 跳过某一个阶段

配置zabbix-proxy主动式

IP地址对应关系如下: zabbix-server122.9.8.21zabbix-proxy122.9.4.102zabbix-agent2116.63.9.109 一、 安装zabbix-server https://blog.csdn.net/qq_50247813/article/details/132131774 二、 安装zabbix-proxy a. 安装zabbix源 rpm -Uvh https://repo.zabbix…

数据收集和准备:打造高质量的数据集

写在开头 在数据科学的舞台上,数据被誉为新时代的燃料。但要将原始数据转化为高质量、可用于分析的数据集,需要经历一系列复杂的步骤。本篇博客将深入探讨数据的收集和准备过程,结合实际数字、场景和代码,助你在数据科学的旅程中打造高质量的数据集。 1. 数据收集 1.1 常…

Linux 调试工具:gdb

调试复习 调试可谓是 “贯穿” 了程序员的一生,调试的重要性,就不再赘述啦!如果你还不知道什么是调试,可以看看 Windows 系统的 Visual Studio 是如何调试的:➡️ visual stuudio 使用调试技巧 下载调试软件 gdb yu…

connectivity_plus 安卓build的时候报错

报错信息 当前版本:connectivity_plus 5.0.2 Flutter 3.13.6 Dart 3.1.3 A problem occurred configuring project :connectivity_plus. > Failed to create Jar file /Users/wangxiangyu/.gradle/caches/jars-8/fef84f4f98be9f93b0b593ccb1e3e207/lint-model-…

使用Accelerate库在多GPU上进行LLM推理

大型语言模型(llm)已经彻底改变了自然语言处理领域。随着这些模型在规模和复杂性上的增长,推理的计算需求也显著增加。为了应对这一挑战利用多个gpu变得至关重要。 所以本文将在多个gpu上并行执行推理,主要包括:Accelerate库介绍,…

【四】3D Object Model之创建Creation——write_object_model_3d()算子

😊😊😊欢迎来到本博客😊😊😊 🌟🌟🌟 Halcon算子太多,学习查找都没有系统的学习查找路径,本专栏主要分享Halcon各类算子含义及用法,有…

Java核心知识点整理大全21-笔记

目录 18.1.5.1. upstream_module 和健康检测 18.1.5.1. proxy_pass 请求转发 18.1.6. HAProxy 19. 数据库 19.1.1. 存储引擎 19.1.1.1. 概念 19.1.1.2. InnoDB(B树) 适用场景: 19.1.1.3. TokuDB(Fractal Tree-节点带数据&…

C++11中的call_once/once_flag使用

为了保证在多线程环境中某个函数仅被调用一次,比如,需要初始化某个对象,而这个对象只能初始化一次,就可以用std::call_once来保证在多线程环境中只被调用一次。使用std::call_once是,需要一个once_flag作为call_once的…

学生护眼灯怎么选?2023备考护眼台灯推荐

近期,许多“护眼台灯是否是智商税”的帖子频繁出现,引起了许多群众的关注,作为一名护眼台灯资深使用者,在这里声明一下,护眼台灯绝对不是智商税。护眼台灯是通过调节光线亮度和色温,降低蓝光辐射&#xff0…

【LeetCode】128. 最长连续序列——哈希的应用(3)

文章目录 1、思路2、解题方法3、复杂度时间复杂度:空间复杂度: 4、Code Problem: 128. 最长连续序列 1、思路 我会用一种做题者的思路来去看待这道题。 我们在乍一看到这道题的时候,看到它的时间复杂度要求为O(N),然后又要求去找序列(就是让你判断这个…