imwrite函数 matlab_imwrite

imwrite函数 matlab_imwrite一、imread直接读取图片数据。示例一下面这段代码读取一张图片并显示出来filename=’e.bmp’;imgRgb=imread(filename);%读入一幅彩色图像imshow(imgRgb);%显示彩色图像示例二下面这段代码把24位真彩色位图转为灰度图像filename=’e.bmp’;imfinfo(filename)%查看图像文件信息imgRgb=imr…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

一、imread直接读取图片数据。

示例一

下面这段代码读取一张图片并显示出来

filename = ‘e.
bmp‘;

imgRgb = imread(filename); % 读入一幅彩色图像

imshow(imgRgb); % 显示彩色图像



示例二

下面这段代码把24位
真彩色
位图转为灰度图像

filename = ‘e.bmp’;

imfinfo(filename) % 查看图像文件信息

imgRgb = imread(filename); % 读入一幅彩色图像

imshow(imgRgb); % 显示彩色图像

imgGray =
rgb2gray(imgRgb); % 转为
灰度图像

figure % 打开一个新的窗口显示灰度图像

imshow(imgGray); % 显示转化后的灰度图像

imwrite(imgGray, ‘gray.jpg’); % 将灰度图像保存到图像文件

二、fread可以读取复杂类型的图片格式数据,如img后缀的遥感、极光数据

fread函数常见用法:1、A=fread(fileID,sizeA,precision,skip,machinefmt)  2、A=fread(fileID) 3、fread(fileID,sizeA) 4、A=fread(fileID,sizeA,precision) 5、A=fread(fileID,sizeA,precision,skip) 6、A=fread(fileID,sizeA,precision,skip)

直接讲第一种参数最多时候的用法,其他可以类推。

fread函数主要用法读取二进制文件。

下面是常用参数的含义:

1、fileID 文件标识

打开的文件标识。比如fid=fopen(‘file.dat’); fid就是fileID,即文件标识

2、sizeA  输出数组的维度

有3种参数,Inf、n、[m,n]

Inf 代表输出数据是列向量,文件中每一个元素对应一个值

n 代表有n个元素的列向量

[m,n] 代表按列向量排列的m行n列的矩阵,n可以取Inf,但m不可以

3、precision   需要读取数据的类型和大小,默认’uint8=>double’

常见有uint,uint8、uint16等数据格式,需要根据源数据来确定

4、skip   代表跳过多少字节,默认为0

5、machinefmt 待读取数据字节的排列方式,默认为’n’

需要根据源数据格式来确定,有’b’、’l’、’s’、’a’等格式

‘n’就是系统字节的排列顺序,即‘native’

‘b’就是’ieee-be’,即’Big-endian ordering’,即低位字节排放在内存的高地址端,高位字节排放在内存的低地址端

‘l’就是‘ieee-le’,即‘Little-endian ordering’即低位字节排放在内存的低地址端,高位字节排放在内存的高地址端

另外,由于imread读取的是一般的图片数据,如png后缀的图片,本身就是存储的颜色索引,所以用imshow(data)(表示data值直接代表颜色)或者imshow(data,[])(表示data的值需要先线性映射到1-256的颜色空间)看到的结果一样。但在读取后缀.img(采用uint16精度)的数据文件时,imshow(data)和imshow(data,[])的结果很不一样,因为此时.img文件存储的不是1-256的颜色索引,因此需要将data的值在颜色空间1-256之间做线性映射。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/185947.html原文链接:https://javaforall.net

(0)
上一篇 2022年10月4日 下午6:46
下一篇 2022年10月4日 下午6:46


相关推荐

  • 深度学习之:什么是流形(manifold)?流形空间,流形学习

    深度学习之:什么是流形(manifold)?流形空间,流形学习作者:麋路链接:https://www.zhihu.com/question/24015486/answer/194284643来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。流形学习的观点是认为,我们所能观察到的数据实际上是由一个低维流形映射到高维空间上的。由于数据内部特征的限制,一些高维中的数据会产生维度上的冗余,实际上只需要比较低的维度就能唯一地表示。举个例子,比如说我们在平面上有个圆,如何表示这个圆呢?如果我们把圆放在一个平面直角坐标系中,那一个圆实际.

    2025年7月2日
    8
  • 基金无效申请_申请信用卡显示代码2961

    基金无效申请_申请信用卡显示代码2961基金申请-8:如何解决无法提交申请的问题?

    2025年7月29日
    7
  • python if else if用法_python的循环语句有哪些

    python if else if用法_python的循环语句有哪些python中if语句的用法及if-else结构怎么使用发布时间:2020-08-2511:49:47来源:亿速云阅读:79python中if语句的用法及if-else结构怎么使用?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。if结构if结构允许程序做出选择,并根据不同的情况执行不同的操作基本用法比较运算符根据PEP8…

    2026年4月14日
    7
  • 线程池实现原理_最通俗易懂的解读比特币相关原理

    线程池实现原理_最通俗易懂的解读比特币相关原理本篇内容综合广大网友提供内容,笔者经过整理,对数据库连接池原理和实现过程做个很系统的并且通俗易懂的分析讲解,以及手写一个连接池实现过程作为演示。一、早期通过JDBC方式操作数据库我们先来看早期使用JDBC的方式操作数据库的过程,这里以mysql数据库为例讲解JDBC操作数据库原理:一般来说,java应用程序访问数据库的过程是:   ①装载数据库驱动程序;   ②通过jdbc…

    2025年12月4日
    3
  • linux怎样配置yum源_yum配置源

    linux怎样配置yum源_yum配置源目录一:配置本地yum源二:配置网络yum源更新源可以获取最新的软件信息,以更新您的系统Redhat7配置源YUM(YellowdogUpdaterModified):yum是Redhat系列系统基于RPM包构建的软件更新机制,可以自动解决rpm包之间的依赖关系,所有软件包由集中的yum软件仓库提供。其理念是使用一个中心仓库(repository)管理一部分甚至一…

    2022年8月13日
    7
  • Date与时间戳的相互转换[通俗易懂]

    Date与时间戳的相互转换[通俗易懂]1、Date对象转换为时间戳Datedate=newDate();longtimes=date.getTime();System.out.println(times);效果如下:15088242832922、时间戳转换为Date日期对象longtimes=System.currentTimeMillis();Datedate=newDate(times);System.out.println(date);…

    2022年6月21日
    229

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号