MATLAB中将数值矩阵转换为灰度图像 您所在的位置:网站首页 矩阵转化为数值 MATLAB中将数值矩阵转换为灰度图像

MATLAB中将数值矩阵转换为灰度图像

2024-02-10 01:52| 来源: 网络整理| 查看: 265

 

       在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可以调节图像的比例

运行程序:

灰度图像 :                                         

添加伪彩色后的图像:



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有