fread和imread不同(imread读取的是图像的像素矩阵,fread会有别的信息)

embedded/2024/10/20 11:55:19/
clear;clc;
fid = fopen('草原HH极化图像.png','rb');
B = fread(fid,'uint8');
% % unit8是0——255,所以要保存图像,要先把矩阵归一化,然后再乘255
% height = 1600;
% width = 2000;
% img_matrix = reshape(B(1:width*height), [height, width]);  img = imread('草原HH极化图像.png');

在 MATLAB 中,读取图像文件时,图像的存储格式可能会影响读取的数据长度。你使用 `fread` 函数读取二进制数据,但图像文件通常包含额外的信息(例如文件头、元数据等),因此仅用 `fread` 读取的字节数不一定等于图像数据的像素数。

要确认 `B` 向量的长度是否与图像数据的像素数一致,可以考虑以下几点:

1. **图像文件格式**:不同格式的图像(如 PNG、JPEG)在文件中存储数据的方式不同。PNG 文件会有压缩和元数据,因此直接读取可能会导致不正确的字节数。

2. **读取方式**:使用 `imread` 函数读取图像时,它会自动处理图像的格式和元数据,并返回一个正确大小的矩阵。相对而言,使用 `fread` 读取文件的原始数据时,需要考虑文件结构。

3. **检查读取长度**:你可以用 `length(B)` 检查读取的向量长度,并与 `height * width` 进行比较,看看差异在哪里。

如果你想要获取图像的原始像素数据,可以直接使用 `imread` 函数,而不必使用 `fread`,这样可以避免手动处理文件格式带来的复杂性。


http://www.ppmy.cn/embedded/128986.html

相关文章

数据同步工具Sqoop原理及场景优化

目录 0 数据同步策略 1 数据同步工具 ​编辑 2 Sqoop同步数据原理分析 2.1 原理分析 2.2 Sqoop基本使用分析 3 切片逻辑 3.1 MR切片逻辑 3.2 Hive CombineInputformat切片逻辑 3.3 实验1:Map任务并行度分析1 3.4 实验2: Map任务并行度分析2 3.5 实验3:Map任务并行…

Tortoise SVN 安装汉化教程(乌龟SVN)

1.首先下载 去官网下载 如果下载比较慢的,链接自取 https://pan.quark.cn/s/cb6f2eee3f90 2. 安装Tortoise SVN 无脑next到完成 最后到桌面右键 你就发现svn出来了,但是是英文的!!!! 像我这种英文不好的…

el-upload照片墙二次封装

基于el-upload文件上传组件的二次封装。 使用场景一般是提交表单中的附属信息&#xff0c;组件要实现的是图片的上传&#xff0c;还有图片的回显。那么现在给出组件代码。 <template><div><el-uploadaction"":http-request"customRequest"…

uniapp,获取头部高度

头部自定义时候&#xff0c;设置获取安全区域&#xff0c;可以用 uni.getSystemInfoSync();接口。 <view class"statusBar" :style"{height:statusBarHeightpx}"> let SYSuni.getSystemInfoSync(); let statusBarHeightref(SYS.statusBarHeight) …

问题记录-- 在 Vue2 中动态更新 Select 组件的选项

在 Vue2 中动态更新 Select 组件的选项 在 Vue 开发中&#xff0c;动态更新表单组件的选项是一个常见的需求。特别是在使用 select 组件时&#xff0c;如何确保选项能够实时反映数据的变化是一个值得关注的问题。本文将探讨如何通过方法获取 select 的 options 来解决这一问题…

vuex的store应用

1.在pakage.json加一行 2.和main同级别加一个js文件 import Vue from vue import Vuex from vuexVue.use(Vuex)export default new Vuex.Store({state: {langFlag: new Date().getTime()},mutations: {setLangFlag(state) {state.langFlag new Date().getTime()}} })3.在mai…

自由学习记录(7)

文件的判断是否存在&#xff0c;带上文件自己的名字 XmlSerializer (Person)serializer.Deserialize(reader); 如果出错之后&#xff0c;没有try来接&#xff0c;就会直接程序报错暂停&#xff0c; 有了的话无论如何都会继续正常进final using则是正常 为什么要用 using&a…

CTFHUB技能树之SQL——整数型注入

开启靶场&#xff0c;打开链接&#xff1a; 直接指明是SQL整数型注入&#xff0c;但还是来判断一下 &#xff08;1&#xff09;检查是否存在注入点 1 and 11# 返回正确 1 and 12# 返回错误 说明存在SQL整数型注入 &#xff08;2&#xff09;猜字段数 1 order by 2# 1 order…