MATLAB读取图片并转换为二进制数据格式
文章目录
- 前言
- 一、MATLAB 文件读取方法
- 1、文本文件读取
- 2、二进制文件读取
- 3、 图像文件读取
- 4、其他文件读取
- 二、常用的图像处理标准图片链接
- 三、MATLAB读取图片并转换为二进制数据格式
- 1、matlab 源码
- 2、运行结果
前言
本文记录使用 MATLAB 读取图片并转换为二进制数据格式的方法,避免后面再做无用功。
一、MATLAB 文件读取方法
1、文本文件读取
Matlab 可以使用 textread 函数、fgetl 函数和 dlmread 函数来读取文本文件。
- textread 函数用于读取包含数字和文本值的纯文本文件,例如 .csv 文件。该函数将逐行读取文件,返回矩阵或多个矩阵,并允许您指定分隔符和每种数据类型的格式。
- fgetl 函数逐行读取纯文本文件,并返回一个字符向量或空字符串。该函数不需要指定分隔符或格式。
- dlmread 函数读取包含数字的表格,其中数据以指定的分隔符分隔。该函数返回矩阵。
2、二进制文件读取
Matlab 可以使用 fread 函数来读取二进制文件。fread 函数返回一个矩阵,其中每个元素都是二进制文件中的一个值。您可以指定要读取的数据类型、数据格式、读取的起始位置和要读取的数据量。
3、 图像文件读取
Matlab 可以使用 imread 函数来读取图像文件,例如 .jpg 文件。imread 函数可以返回包含像素值的矩阵和一些元数据的结构体。
4、其他文件读取
Matlab 可以使用 load 函数来读取 MATLAB 文件,并返回在文件中存储的所有变量。还可以使用 xlsread 函数来读取 Microsoft Excel 文件。这些函数还可以指定要读取的变量或工作表的名称。
二、常用的图像处理标准图片链接
常用的图像处理标准图片(Lena、cameraman等)获取地址:常用的图像处理标准图片
三、MATLAB读取图片并转换为二进制数据格式
- 主要流程:为将本地文件转换成二进制数据形式保存成为 txt 格式文件,接着从 txt 文件中读取并显示
- 验证标准:转换前后显示的图片一致
1、matlab 源码
源码如下:
clear all
close all% 读取图像
imdata = imread('Lena.bmp');% 显示图像
imshow(imdata);% 将图像转换为二进制格式
BinSer = dec2bin(imdata, 8); % 将 BinSer 进行转置,使得每列表示一个像素值的二进制字符串。
BinSer = BinSer';% 根据图像的大小创建一个文件名,文件名的格式为'binaryImg_M_N_K.txt',
% 其中M表示图像的行数,N表示图像的列数,K表示图像的通道数(对于灰度图像,
% 通道数为1)。
FileName = [num2str(size(imdata,1)), '_',num2str(size(imdata,2)),'_',num2str(size(imdata,3)),'.txt'];% 打开文件 FileName,以写入(write)方式
fid = fopen(FileName,'w');% 将 BinSer 中的数据按照字符形式写入到文件中。
fprintf(fid,'%c', BinSer(:));% 关闭文件
fclose(fid);% 创建一个新的图像显示窗口
figure;% 从文件名中读取出图像的行数 M、列数 N 和通道数 K,并将它们存储在变量 mn 中
mn = sscanf(FileName, '%d_%d_%d');
M = mn(1); N = mn(2); K = mn(3);% 以只读(read)方式打开文件 FileName。
fid = fopen(FileName, 'r');% 从文件中读取数据,并将其存储在变量 data 中
data = fscanf(fid, '%c');% 关闭文件
fclose(fid);% 将 data 重新排列成每列 8 个字符的矩阵,表示每个像素值的二进制字符串
data1 = reshape(data, 8, length(data)/8);% 将data1中的二进制字符串转换为对应的十进制表示,并将结果重新排列为
% M×N×K 的三维矩阵,其中 M 为行数,N 为列数,K 为通道数。
data2 = reshape(bin2dec(data1'), M, N, K);% 显示转换后的图像数据
imshow(uint8(data2));
2、运行结果
左图为原图片,右图为转换成二进制文件后再进行显示

可以看到结果一致,达到了预期的期望。
我的qq:2442391036,欢迎交流!
相关文章:
MATLAB读取图片并转换为二进制数据格式
文章目录 前言一、MATLAB 文件读取方法1、文本文件读取2、二进制文件读取3、 图像文件读取4、其他文件读取 二、常用的图像处理标准图片链接三、MATLAB读取图片并转换为二进制数据格式1、matlab 源码2、运行结果 前言 本文记录使用 MATLAB 读取图片并转换为二进制数据格式的方…...
时序数据库
SELECT *,max(lp_index) FROM lp.tdm_lp_original_data where ts > 2023-12-28 18:11:33.521 and ts < 2023-12-29 19:03:12.148 INTERVAL(2s) FILL(PREV) 在时间序列数据库TDengine中,FILL函数与GROUP BY子句结合使用,提供了对于在指定间隔内…...
【第一次使用finalshell连接虚拟机内的centos】小白处理方式
第一次使用finalshell连接centos7的时候,因为都是新环境什么都没有配置,所以就需要安装finalshell和对新的centos7 进行一些配置。 安装finalshel,默认不安装d盘,就需要对安装路径做一下调整,其余都是下一步默认安装的…...
Pinia 踩坑记录
1、子store中如何使用router 以user.ts 这个store为例 错误写法 // 说明:不能使用插件实例化router,否则获取不到router的函数 // 错误写法如下:import { useRouter } from "vue-router"actions:{login(){const router useRout…...
在ASP.NET MVC中使用JQuery提供的弹出窗口(模态窗口)
在ASP.NET MVC中使用JQuery提供的弹出窗口(模态窗口) 原理 使用<div>图层灵活显示在浏览器的任何位置。默认情况下指定<div>不可见 引用 样式表 在JQuery的官方网站可以下载对应的css样式表。打开官网的样例页。 找到样式表引用路径 …...
基本工具配置
github加速 github.ur1.fun java # ubuntu20.04 安装 openjdk-17-jdk sudo apt install openjdk-17-jdk java -version javac -version which java参考 openjdk gradle换源 修改gradle-wrapper.properties distributionBaseGRADLE_USER_HOME distributionPathwrapper/dis…...
计算机网络——应用层(3)
计算机网络——应用层(3) 小程一言专栏链接: [link](http://t.csdnimg.cn/ZUTXU) 点对点(P2P)P2P网络一般用途优点缺点总结 套接字编程基本步骤UDP套接字TCP套接字基本步骤 二者对比 小程一言 我的计算机网络专栏,是自…...
配置ssh实现互相免密登陆
一、实验要求 通过两台linux主机 配置ssh 实现互相免密登陆 的操作 二、实验思路 免密登录我们可以理解为使用公钥登录,这里分别使用两台主机(client)和(server)作为实验主机。 首先让client免密登录server&#x…...
【UEFI基础】EDK网络框架(ARP)
ARP ARP协议说明 从这里开始涉及到的网络协议都是比较通用的了,在一般的TCP/IP四层模型中都能够看到这些内容,不过这里主要介绍的还是其在BIOS下的实现,但是在此之前还是需要先说明ARP的作用。 ARP的全称是Address Resolution Protocol&am…...
Linux进阶课:目录(文件夹)与文件操作
1、ls与cat的区别是是什么? 答:ls命令的含义是list,显示当前目录中内容。不加参数时它显示当前目录中除隐藏文件外的所有文件及目录的名字。 cat命令是linux下的一个文本输出命令,通常是用于查看某个文件的内容的。 2、[abc]这个…...
Flink自定义Source模拟数据流
maven依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.…...
[易语言]使用易语言部署工业级人脸检测模型
【框架地址】 https://github.com/ShiqiYu/libfacedetection 【算法介绍】 Libfacedetection是一个开源的计算机视觉库,主要用于实时的人脸检测。它利用深度学习技术,特别是卷积神经网络(CNN),实现了高精度的脸部定位…...
2024年海外推广怎么做?
要说如何做海外推广,绝大多数的外贸小伙伴都能说上一些,但是大部分人对于推广系统知识略知一二,没有构建一个系统化的知识框架。 海外推广的几大步骤 1.定策略 做海外推广前,我们需要制定一套营销策略,需要去定义一…...
Redis分布式锁--java实现
文章目录 Redis分布式锁方案:SETNX EXPIRE基本原理比较好的实现会产生四个问题 几种解决原子性的方案方案:SETNX value值是(系统时间过期时间)方案:使用Lua脚本(包含SETNX EXPIRE两条指令)方案:SET的扩展…...
好消息,Linux Kernel 6.7正式发布!
据有关资料显示,该版本是有史以来合并数最多的版本之一,包含 17k 个非合并 commit,实际合并的超过1K个。 那么该版本主要有哪边变化呢?下面我来一一列举一下: Bcachefs文件系统已被合并到主线内核,这是一款…...
【k8s】Kubernetes 声明式 API、命令式
1. 资源管理方式: 1>. 命令式对象管理∶直接使用命令去操作kubernetes资源 kubectl run nginx-pod --imagenginx:1.17.1 --port802>. 命令式对象配置∶通过命令配置和配置文件去操作kubernetes资源 kubectl create/patch -f nginx-pod.yaml3>. 声明式对…...
解锁营销新高度:幽灵鲨CRM推广平台线索对接功能详解
数字营销时代,线索对接是推动业务增长的关键。你是否为线索分布在不同的平台而来回切换?你是否为无法及时联系客户而错失商机?幽灵鲨CRM系统作为一款领先的客户关系管理解决方案,不仅实现了对主流推广平台的全面对接,更…...
uniapp 创建组件
组件:用于将某个功能的 HTML、CSS、JS 封装到一个文件中,提高代码的复用性和可维护性。 创建组件 一、在根目录中创建 components 文件夹,右键点击新建组件。 二、输入组件名称、选择默认模板、点击创建组件。 三、在组件中正常编写内容即可…...
Linux--部署 Tomcat 及其负载均衡
1.案例前置知识点 1)Tomcat简介 名称由来:Tomcat最初是由 Sun的软件构架师詹姆斯邓肯戴维森开发的。后来他帮助将其变 为开源项目,并由Sun贡献给Apache软件基金会。由于大部分开源项目OReilly都会出一本相关的 书,并且将其封面设…...
影像组学介绍
影像组学介绍 1 影像组学介绍2 具体提取影像组学方法流程及工具代码:2.1 影像数据获取2.2 感兴趣区域分割2.3 特征提取与降维选择2.3.1 特征提取:2.3.2 特征降维(特征选择) 2.4 建模分析:2.5 结果分析 参考: 1 影像组学介绍 其实…...
铭豹扩展坞 USB转网口 突然无法识别解决方法
当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...
【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...
工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...
在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能
下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...
vue3+vite项目中使用.env文件环境变量方法
vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...
Java面试专项一-准备篇
一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如:…...
React---day11
14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store: 我们在使用异步的时候理应是要使用中间件的,但是configureStore 已经自动集成了 redux-thunk,注意action里面要返回函数 import { configureS…...
CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)
漏洞概览 漏洞名称:Apache Flink REST API 任意文件读取漏洞CVE编号:CVE-2020-17519CVSS评分:7.5影响版本:Apache Flink 1.11.0、1.11.1、1.11.2修复版本:≥ 1.11.3 或 ≥ 1.12.0漏洞类型:路径遍历&#x…...
基于IDIG-GAN的小样本电机轴承故障诊断
目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) 梯度归一化(Gradient Normalization) (2) 判别器梯度间隙正则化(Discriminator Gradient Gap Regularization) (3) 自注意力机制(Self-Attention) 3. 完整损失函数 二…...
【免费数据】2005-2019年我国272个地级市的旅游竞争力多指标数据(33个指标)
旅游业是一个城市的重要产业构成。旅游竞争力是一个城市竞争力的重要构成部分。一个城市的旅游竞争力反映了其在旅游市场竞争中的比较优势。 今日我们分享的是2005-2019年我国272个地级市的旅游竞争力多指标数据!该数据集源自2025年4月发表于《地理学报》的论文成果…...
