imwrite函数 matlab_imwrite

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


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)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • 面试了一个5年的Java,问什么都说不会…!

    面试了一个5年的Java,问什么都说不会…!最近看了很多简历,很多候选人年限不小,但是做的都是一些非常传统的项目,想着也不能通过简历就直接否定一个人,何况现在大环境越来越难,大家找工作也不容易,…

    2022年7月7日
  • 设计模式之职责链模式

    相信大家都玩过类似于“斗地主”的纸牌游戏,某人出牌给他的下家,下家看看手中的牌,如果要不起,则将出牌请求转发给他的下家,其下家再进行判断。一个循环下来,如果其他人都要不起该牌,则最初的出牌者可以打出新

    2021年12月28日
  • 京东准点秒杀脚本[通俗易懂]

    京东准点秒杀脚本[通俗易懂]转载自:https://blog.csdn.net/tangcv/article/details/102993939直接上菜1.浏览器打开https://www.jd.com/,登录京东2.选择要抢购的商品3.按键盘F12,打开开发者模式,选择Console选项卡4.把以下代码粘贴在Console里面,修改代码里开始抢购时间(有二处时间)varnIn…

    2022年6月16日
  • Jenkins(4)docker容器内部修改jenkins容器时间[通俗易懂]

    Jenkins(4)docker容器内部修改jenkins容器时间[通俗易懂]前言用docker搭建的Jenkins环境时间显示和我们本地时间相差8个小时,需修改容器内部的系统时间查看时间查看系统时间date-R进入docker容器内部,查看容器时间dockere

    2022年7月29日
  • SQL server 2008 r2 安装图文详解

    文末有官网下载地址、百度网盘下载地址和产品序列号以及密钥,中间需要用到密钥和序列号的可以到文末找选择网盘下载的下载解压后是镜像文件,还需要解压一次直接右键点击解如图所示选项,官网下载安装包的可以跳过前两步等待解压完,过程可能会比较慢解压完后双击如图所示选项安装SQLServer2008R2需要.NETFramework3.5SP1支持这

    2022年4月8日
  • VS中新建Qt项目工程后显示无法打开源文件“QtWidgets/QApplication”的解决方案「建议收藏」

    VS中新建Qt项目工程后显示无法打开源文件“QtWidgets/QApplication”的解决方案「建议收藏」环境:VS2015+Qt5.6在vs中新建工程后一般都会显示无法打开源文件“QtWidgets/QApplication”,就像这样:这是什么原因呢?这是因为,新建Qt项目时VC++包含目录没有自动包含Qt所需要的头文件路径,需要手动添加,具体操作步骤如下:1.在工程中右击项目,点击属性。2.选择VC++目录->包含目录,按图所示步骤操作。3.选择Q…

    2022年6月29日

发表回复

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

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