matlab实现图像读取、写入和显示

1.图像的读取

       使用imread()函数来读取一幅图像。例如,下行代码实现的就是一个名为“lena.jpg”的图像文件,并将图像的像素矩阵赋值给变量I。文件名需要用单引号括起来,此外,末尾的分号在matlab中用于取消输出。

I = imread('lena.jpg');

       上面这个命令没有包含任何路径信息,imread()函数会从当前工作目录中寻找并读入图像文件。如果在当前目录中没有找到该文件,则matlab会尝试在搜索路径中寻找该文件。
       我们还可以显式地给出文件的完整路径,例如:

I = imread('C:\lena.jpg');

2.图像的写入

       使用函数imwrite()来写入图像文件,该函数语法形式为:

imwrite(I,'filename')

        其中,参数I表示一个二维图像数组,可由imread()函数得到,filename必须是一种可识别的文件格式。例如,下面的命令可以将图像以lena为文件名存储为PNG格式的文件:

imwrite(I,'lena.png')

       也可以写成:

imwrite(I,'lena','png')

       如果filename中不包含路径信息,那么imwrite()就会把文件保存至当前的工作目录中。此外,imwrite()函数还有一种适用于JPEG图像的语法形式,如下:

imwrite(I,'filename.jpg','quality',q)

       其中,q是整数,取值范围是0~100之间。JPEG是一种采用有损压缩为编码方式的图像文件格式,这里的q就是用来控制压缩后的图像质量的,q值越小,则表示图像的质量退化就越严重。

3.图像的显示

3.1 显示单幅图像

       通常使用imshow()函数来显示图像文件,它可以自动地创建句柄图形图像对象,并自动设置各句柄图形属性和图像特征,从而使得显示效果得以优化。imshow()函数的基本语法形式如下:

imshow(I,[G])

       其中,参数I表示一个二维图像数组,可由imread()函数得到,G表示该图像的灰度级数,默认为256。另外,还可以写成如下格式:

imshow(I,[low,high])

       low和high表示所有小于low的值都显示为黑色,所有大于high的值都显示为白色,在low和high之间的值都以默认的级数显示为中等亮度值。

       当使用imshow()同时输出多幅图像时,后面的图像总是会覆盖前面的图像。为了同时显示多幅图像,就要用到figure()函数。该函数的作用是建立图形窗口对象。例如:

% figure
imshow(IMG1)
figure(5)
imshow(IMG2)

       运行上述代码,显示结果如下:

lena
baboon

显示多幅图像
3.2 关闭图形窗口

       要关闭图形窗口,使用close()函数。例如:

close(5)

       括号中的参数是窗口句柄,该语句的作用是关闭Figure 5窗口。在默认情况下(即不输入任何参数),matlab会选择关闭当前窗口(也就是最后创建的一个窗口)。此外,我们还可以使用close all命令来关闭所有的图形窗口。

3.3 同一窗口显示多幅图像

       此时需要用subplot()函数,该函数的语法形式为subplot(m,n,p)或subplot(m n p)。其中,m表示图排成m行,n表示图排成n列,p表示图所在的位置,p=1表示从左到右、从上到下的第一个位置。例如:

figure;
subplot(1,2,1),subimage(IMG1);
title('lena');
subplot(1,2,2),subimage(IMG2);
title('baboon');

       运行结果如下:

在这里插入图片描述

在同一窗口显示多幅图像

       函数title()作用是给子图加标题,而函数subimage()的作用则是显示子图,这里也可以换成imshow()。其中,subimage()函数会给图像加上坐标而imshow()则不会。此外,对图像而言,坐标原点位于左上角。

参考资料

  1. 数字图像处理原理与实践MATLAB版 [左飞 著] 2014年版
### MATLAB读取图像方法与示例 MATLAB 提供了多种功能来支持图像读取操作,其中最常用的函数是 `imread` 函数。以下是关于如何使用 MATLAB 读取图像的具体说明以及代码示例。 #### 使用 `imread` 函数读取图像 `imread` 是 MATLAB 中专门用于读取图像文件的核心函数。通过指定图像路径名称,可以轻松加载各种常见格式的图像到工作区中作为矩阵表示[^1]。下面是个简单的例子: ```matlab % 定义图像路径 imagePath = 'C:\Users\Administrator.WJ-20130828GOAN\Desktop\A\附.jpg'; % 使用 imread 加载图像 img = imread(imagePath); % 显示图像 imshow(img); title('原始图像'); ``` 此代码片段展示了如何利用绝对路径定位并加载张存储于本地磁盘上的 JPEG 图像文件,并调用了 `imshow` 来显示图像[^1]。 #### 导入图像处理工具箱 (针对 GNU Octave 用户) 对于某些环境(例如 GNU Octave),可能需要显式加载额外的支持包才能正常使用图像处理功能。可以通过执行如下命令完成初始化设置[^2]: ```matlab pkg load image; ``` 注意:这是特定环境下才需使用的步骤,在标准版 MATLAB 软件里无需手动加载此类扩展库。 #### 处理 RAW 格式的特殊案例 如果目标图像是未经压缩或者非标准化编码方式保存下来的 RAW 数据,则除了常规参数外还需要考虑更多细节配置项。这里给出段示范脚本用来解析这类复杂情况下的输入素材[^3]: ```matlab rawFileName = '你的RAW文件名.RAW'; metadataInfo = imfinfo(rawFileName); % 获取元数据信息 rawImageMatrix = imread(rawFileName); % 实际像素值提取 disp(metadataInfo); % 打印获取的信息结构体内容 figure; imagesc(uint8(rawImageMatrix)); colormap gray; axis equal tight; title(['Raw Image Data from ', rawFileName]); ``` 以上就是有关 MATLAB 如何实现基本及高级别的图像导入过程介绍及相关实用技巧分享。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值