问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

MATLAB读入不同类型图像并显示图像和相关信息

创作时间:
作者:
@小白创作中心

MATLAB读入不同类型图像并显示图像和相关信息

引用
CSDN
1.
https://blog.csdn.net/xrgs_shz/article/details/143980966

MATLAB(矩阵实验室)是一种广泛使用的数学工具软件,以其强大的矩阵运算能力著称。在图像处理领域,MATLAB支持多种图像格式的读取和处理,这使得它成为图像处理和分析的重要工具。本文将详细介绍如何使用MATLAB读取和显示不同类型的图像,并通过具体示例展示每种格式的特点和读取方法。

JPEG格式

JPEG(联合图像专家组)是一种广泛应用于数码照片的图像压缩格式。MATLAB中的imread函数可以轻松读取JPEG格式的图像。

A = imread('ngc6543a.jpg'); % imread 返回 650×600×3 数组 A。
% ngc6543a.jpg是哈勃太空望远镜对行星状星云 NGC 6543 拍摄的图像。
image(A) % 显示图像

通过whos命令可以查看工作区中的变量及其大小和类型,而imfinfo函数可以显示有关图形文件的详细信息:

whos % 列出工作区中的变量及大小和类型
imfinfo('ngc6543a.jpg') % 显示有关图形文件的信息

从上面可以看出,该图像格式为jpg,位深为24位,颜色类型为真彩色(truecolor)等信息。

BMP格式

BMP(Windows位图)是Windows操作系统中最早出现的图像格式之一,存储的是无压缩位图。MATLAB的imread函数同样支持BMP格式的图像读取。

J = imread('lena.bmp'); % 读入lena.bmp图像
figure, imshow(J)

PNG格式

PNG(便携式网络图形)是一种支持透明度的无损压缩格式,特别适合用于网页和界面设计。MATLAB能够读入PNG格式的图像。

I = imread('rice.png'); % 读入一个名为rice.png的灰度图像,并将其存储在变量I中
imshow(I); % 显示图像
whos I

由上面可知,rice.png图像行列数均为256,数据类型为无符号的8位整型,每个像素占用1个字节(8位),总共占用字节为65536。

TIFF格式

TIFF(标记图像文件格式)是一种灵活的图像文件格式,支持多种图像数据的存储,包括非压缩图像和压缩图像。MATLAB的imread函数也支持TIFF格式的图像读取。

K = imread('moon.tif');
figure('Name', 'moon.tif图像', 'NumberTitle', 'off'), imshow(K);
whos K

对于索引彩色图像,可以使用以下命令:

[X, cmap] = imread('corn.tif'); % 将 corn.tif中的索引图像读入A,并将其关联的颜色图读入map
figure, imshow(X, cmap); % 显示索引彩色图像
whos cmap

Im = ind2rgb(X, map); % 把索引图像转换为RGB彩色图像
figure('Name', '通过ind2rgb把corn.tif索引图像转换为彩色图像', 'NumberTitle', 'off'), imshow(Im);
[X3, map3] = imread('corn.tif', 3); % 读取示例文件corn.tif中的第三幅图像

GIF格式

GIF(图形交换格式)是一种支持动画和透明度的图像格式,广泛应用于网页和社交媒体。MATLAB的imread函数也支持GIF格式的图像读取。

clear all; close all; clc;
% 确定 MATLAB 内置图像文件的路径
imageFile = fullfile(matlabroot, 'toolbox', 'images', 'imdemos', 'ngc6543a.gif');
% 使用 imread 读取 GIF 图像
img = imread(imageFile);
% 显示读取的图像
imshow(img);
% 获取图像的大小信息
[imageHeight, imageWidth, numberOfFrames] = size(img);
disp(['图像高度: ', num2str(imageHeight)]);
disp(['图像宽度: ', num2str(imageWidth)]);
disp(['帧数: ', num2str(numberOfFrames)]);

其他图像格式

对于MATLAB不支持的图形文件(如后缀为webp),可以采用以下几种方法间接处理:

  1. 使用外部工具转换格式:在将WebP图像导入MATLAB之前,可以使用外部的图像转换工具(如在线转换器、QQ、格式工厂等)将WebP图像转换为MATLAB支持的格式(如PNG或JPEG)。转换后,可以使用MATLAB的imread函数来读取转换后的图像。

  2. 使用MATLAB的File Exchange资源:MATLAB的File Exchange是一个用户贡献的工具箱和函数的平台。有时,用户会在这里分享用于读取特定图像格式(包括WebP)的函数或工具箱。可以搜索File Exchange来查找是否有可用的WebP读取函数。

  3. 使用Java或Python库:MATLAB支持调用Java和Python的库。可以使用Java的ImageIO库或Python的Pillow库(PIL)来读取WebP图像,然后通过MATLAB的Java或Python接口将图像数据传递到MATLAB中。这种方法需要一些编程技巧和对Java或Python的了解。

总之,虽然MATLAB目前不直接支持读取WebP格式的图像,但可以通过上述方法之一来间接处理这种格式的图像。选择哪种方法取决于具体需求、可用的工具和编程技能水平。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号