在MATLAB中,一个数据矩阵就相当于一副数字图像,只是在数字图像中对应的数组元素必须在一定的取值范围,因此,只要将对应数据矩阵中的元素按一定规律进行转换,就可以将矩阵转换为图像了。

       在MATLAB中可以利用函数mat2gray()将一个数据矩阵转换为一副灰度图像

       其调用格式如下:

       I=mat2gray(X,[xmin,xmax]):该函数是按照指定区间[xmin,xmax]将数据矩阵X转换为灰度图像I。xmin对应灰度值0,即黑色,xmax对应灰度值1,即白色。数据矩阵中小于xmin的值取为0,大于xmax的值取为1.如果不指定取值区间[xmin,xmax],即默认情况下,将数据矩阵X中的最小值设为xmin,最大值设为xmax。

例1.将矩阵转换为灰度图像,具体实现代码如下:

 

close all; %关闭当前所有图形窗口
clear all;% 清除工作空间所有变量
clc; %清空命令行
X=magic(256); %利用魔方矩阵magic()产生一个256*256的方阵X
I=mat2gray(X);%将数值矩阵X转换为灰度图像
figure,imshow(I); %显示转换后的灰度图像

   运行程序,运行结果如图:

 

例2.利用MATLAB读取一个txt文本,将其保存到矩阵中,并显示处图形。我的txt文本是一个超声成像测井数据,它一共有1203行,181列的数据。

    编程实现:

clc;
clear all;
C=textread('text.txt','%f');%读取原始数据,C是一个列向量,为总的数据数
[p,q]=size(C); % size()获取矩阵的行数和列数
D=reshape(C,181,1203);
%reshape函数重新调整矩阵的行和列
% reshape(A,m,n)  将矩阵A的元素返回到一个m×n的矩阵
F = D'; %进行矩阵转置
H = double(F);   %matlab里面主要用于运算的数据类型是双精度浮点数double

Im=mat2gray(H);  %将数值矩阵转换为灰度图
figure
imshow(Im);
title('测井图像')
rgb = label2rgb(gray2ind(Im,255),jet(255));% 对灰度图像添加伪彩色
imtool(uint8(rgb)); %imtool可以调节图像的比例

运行程序:

灰度图像 :                                         

添加伪彩色后的图像:

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐