matlab操作方法(三)——matlab中的数字图像(读取、显示、保存)

2023-12-10 16:13

本文主要是介绍matlab操作方法(三)——matlab中的数字图像(读取、显示、保存),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

数字图像是二维图像用有限数字数值像素的表示。通常像素在计算机中保存为二维整数数组的光栅图像,这些值经常用压缩格式进行传输和存储。

二值图像:图像中每个像素的亮度值仅可以取自0或1的图像,因此也称为1bit图像

灰度图像:图像中每个像素可以由0(黑)到255(白)的亮度值表示。0~255之间表示不同的灰度阶

彩色图像:彩色图像主要分为两种类型,RGB和CMYK。其中RGB的彩色图像是由三种不同颜色成分组合而成(R红色,G绿色,B蓝色),而CMYK类型的图像则是由四个颜色成分组成(C青,M品,Y黄,K黑),CMYK类型的图像主要用于印刷行业

1.matlab中图像的读取

在matlab中利用函数imread()来实现图像文件的读取操作

A = imread(filename)
A = imread(filename,fmt)
A = imread(____,idx)
A = imread(____,Name,Value)
[A,map] = imread(____)
[A,map,transparency] = imread(____)

A = imread(filename)从filename指定的文件读取图像,并从文件内容推断出其格式。如果filename为多图像文件,则 imread读取该文件中的第一个图像

 

2.图像的显示

在matlab中提供的图像显示函数包括imshow()、image()、imagesc()

函数imshow()的语法格式如下:

imshow(I)
imshow(X,map)
imshow(filename)
imshow(I,[low,high])
imshow(____,Name,Value)
himage=imshow(____)

imshow(I,[low,high])表示用指定的灰度范围[low,high]显示灰度图像I,在显示的灰度图像中,灰度值小于等于low的用黑色表示,灰度值大于等于high的都用白色表示,介于low和high之间的用其灰度值的默认值的中间色调显示,如果用一个空矩阵[ ]来代替[low,high],imshow将使用[min(I(:)),max(I(:)]作为第二个参数

 image从数组显示图像,

函数image()的语法如下:

image(C)
image(x,y,C)
image('CData',C)
image('XData',x,'YData',y,'CData',C)
image(____,Name,Value)
image(ax,____)
im =image(____)

 image(C)会将数组C中的数据显示为图像。C的每个元素指定图像的1个像素的颜色,生成的图像是一个m*n像素网格,其中m和n分别是C中的行数和列数,这些元素的行索引和列索引确定了对应像素的中心;

image(x,y,C)指定图像位置,使用x和y可指定与C(1,1)和C(m,n)对应的边角位置。要同时指定两个边角,请将x和y设置为二元素向量,要指定第一个边角并让image确定另一个,请将x和y设置为标量值,图像将根据需要进行拉伸和定向

imagesc()函数的用法格式与image()基本类似

3.图像的输出

matlab利用函数imwrite()来实现图像文件的输出和保存操作,其语法格式为:

imwrite(A,filename)
imwrite(A,map,filename)
imwrite(____,fmt)
imwrite(____,Name,Value)

imwrite(A,filename)将图像数据A写入到filename指定的文件,并从扩展名推断出文件格式,imwrite在当前文件夹中创建新文件。

 

 

这篇关于matlab操作方法(三)——matlab中的数字图像(读取、显示、保存)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/477605

相关文章

第10章 中断和动态时钟显示

第10章 中断和动态时钟显示 从本章开始,按照书籍的划分,第10章开始就进入保护模式(Protected Mode)部分了,感觉从这里开始难度突然就增加了。 书中介绍了为什么有中断(Interrupt)的设计,中断的几种方式:外部硬件中断、内部中断和软中断。通过中断做了一个会走的时钟和屏幕上输入字符的程序。 我自己理解中断的一些作用: 为了更好的利用处理器的性能。协同快速和慢速设备一起工作

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

matlab读取NC文件(含group)

matlab读取NC文件(含group): NC文件数据结构: 代码: % 打开 NetCDF 文件filename = 'your_file.nc'; % 替换为你的文件名% 使用 netcdf.open 函数打开文件ncid = netcdf.open(filename, 'NC_NOWRITE');% 查看文件中的组% 假设我们想读取名为 "group1" 的组groupName

利用matlab bar函数绘制较为复杂的柱状图,并在图中进行适当标注

示例代码和结果如下:小疑问:如何自动选择合适的坐标位置对柱状图的数值大小进行标注?😂 clear; close all;x = 1:3;aa=[28.6321521955954 26.2453660695847 21.69102348512086.93747104431360 6.25442246899816 3.342835958564245.51365061796319 4.87

lvgl8.3.6 控件垂直布局 label控件在image控件的下方显示

在使用 LVGL 8.3.6 创建一个垂直布局,其中 label 控件位于 image 控件下方,你可以使用 lv_obj_set_flex_flow 来设置布局为垂直,并确保 label 控件在 image 控件后添加。这里是如何步骤性地实现它的一个基本示例: 创建父容器:首先创建一个容器对象,该对象将作为布局的基础。设置容器为垂直布局:使用 lv_obj_set_flex_flow 设置容器

C# dateTimePicker 显示年月日,时分秒

dateTimePicker默认只显示日期,如果需要显示年月日,时分秒,只需要以下两步: 1.dateTimePicker1.Format = DateTimePickerFormat.Time 2.dateTimePicker1.CustomFormat = yyyy-MM-dd HH:mm:ss Tips:  a. dateTimePicker1.ShowUpDown = t

C# double[] 和Matlab数组MWArray[]转换

C# double[] 转换成MWArray[], 直接赋值就行             MWNumericArray[] ma = new MWNumericArray[4];             double[] dT = new double[] { 0 };             double[] dT1 = new double[] { 0,2 };

argodb自定义函数读取hdfs文件的注意点,避免FileSystem已关闭异常

一、问题描述 一位同学反馈,他写的argo存过中调用了一个自定义函数,函数会加载hdfs上的一个文件,但有些节点会报FileSystem closed异常,同时有时任务会成功,有时会失败。 二、问题分析 argodb的计算引擎是基于spark的定制化引擎,对于自定义函数的调用跟hive on spark的是一致的。udf要通过反射生成实例,然后迭代调用evaluate。通过代码分析,udf在

小程序button控件上下边框的显示和隐藏

问题 想使用button自带的loading图标功能,但又不需要button显示边框线 button控件有一条淡灰色的边框,在控件上了样式 border:none; 无法让button边框隐藏 代码如下: <button class="btn">.btn{border:none; /*一般使用这个就是可以去掉边框了*/} 解决方案 发现button控件有一个伪元素(::after