Matlab图像处理-灰度拉伸原理方法

本教程适合Matlab数字图像处理的初学者。灰度线性拉伸是数字图像处理中最为简单直接的图像增强方法,本文中所支持的灰度拉伸图像,不仅仅限于灰度图,更将RGB真彩色图、多波段遥感影像纳入灰度拉伸范畴。较为全面直观地给出在Matlab中对图像进行灰度拉伸的方法原理和Matlab源代码,并配合必要的代码注释,希望能帮助Matlab和数字图像处理的初学者入门。

操作方法

  • 01

    打开图像 [FileName, FilePath]=uigetfile('*.tif;*.jpg;*.png;*.img;*.gif;','请选择图像数据'); str=[FilePath FileName]; Image=imread(str); % 以对话框的形式选择打开一幅图像 [M,N,nDims]=size(Image); Image=im2double(Image); % 获取图像的尺寸和波段数

  • 02

    灰度拉伸 ImageStretch=Image; for i=1:nDims  % 对每个波段依次进行灰度拉伸 Sp=Image(:,:,i); MaxDN=max(max(Sp)); MinDN=min(min(Sp)); Sp=(Sp-MinDN)/(MaxDN-MinDN);  % 灰度拉伸公式 ImageStretch(:,:,i)=Sp; end % 将灰度拉伸结果保存在ImageStretch中

  • 03

    保存输出 figure,  % 在同一窗口显示原图与灰度拉伸结果图 if nDims==3||nDims==1  % 若为灰度图和RGB真彩色图则以常规方式保存并输出 subplot(1,2,1),imshow(Image);title('原图'); subplot(1,2,2),imshow(ImageStretch);title('灰度拉伸'); imwrite(ImageStretch,'Result_Stretch.jpg','jpeg'); else  % 若为多波段遥感影像则按照TM 3,2,1组合形式保存并输出 subplot(1,2,1),imshow(Image(:,:,[3,2,1]));title('原图'); subplot(1,2,2),imshow(ImageStretch(:,:,[3,2,1]));title('灰度拉伸'); imwrite(ImageStretch(:,:,[3,2,1]),'Result_Stretch.tif','tiff'); end % 将拉伸结果保存至当前目录并以Result_Stretch命名

结果对比

  • 01

    灰度图拉伸结果对比 上图:原灰度图 下图:灰度拉伸结果

  • 02

    RGB真彩色图拉伸结果对比 上图:原RGB真彩色图 下图:灰度拉伸结果

  • 03

    多波段遥感影像拉伸结果对比 上图:原多波段遥感影像(TM321组合) 下图:灰度拉伸结果(TM321组合)

(0)

相关推荐

  • Matlab图像如何处理?Matlab图像处理的基本操作

    虽然说Matlab是一款数学处理软件,但是这款软件特别强大,强大之处在于他还能够处理图像,这个功能是很多新手学习Matlab的时候感到惊讶的地方,所不了解,所要学习的,下面小编就给大家介绍Matlab ...

  • Matlab建立自定义函数的方法

    Matlab是一款数学商业软件,是一款拥有很多功能的函数软件,用户在使用这款软件的时候可以直接调用这些函数.但是在实际的使用中,尽管Matlab提供了很多函数,但是有时候还需要自定义函数来解决实际情况 ...

  • 安卓手机刷机原理方法介绍刷机失败解决方案 中

    操作方法 01 02 5风险 说到风险但凡刷机都带有一定的风险关键看你能不能把风险最小化甚至去掉了.首先肯定的是正常的刷机操作是不会损坏手机硬件的.其次刷机可以解决手机有些莫名其妙的毛病.升级手机硬件 ...

  • Matlab图像处理-RGB色彩提取原理方法

    本教程适合Matlab数字图像处理的初学者.目前有一些手机相机软件有"魔法色彩"功能,可以将彩色照片变为只显示某一种具体颜色的灰色照片.本文中所提到的RGB色彩提取纯粹为实现个人兴 ...

  • 采用matlab将图像灰度化的方法

    对于初学图像处理的小伙伴们,对于图像的灰度化很重要.所谓灰度化就是将一个彩色的图片转换成一个黑白的图像,便于处理. 准备 1.打开matlab: 打开matlab程序,如图所示的界面: 2.清空空间: ...

  • MATLAB图像处理基础

    图像处理技术未来发展可归纳为: ⑴高清晰度电视的研制,开展实时图像处理的理论及技术研究,向着高速.高分辨率.立体化.多媒体化.智能化和标准化方向发展. ⑵图像.图形相结合,朝着三维成像或多维成像的方向 ...

  • matlab软件实现开区间的方法

    对于使用matlab的同学,在对相应的函数求解的时候,往往会出现表示开区间的问题,比如我要画一个开区间的函数. 方法: 1.打开matlab软件如图所示: 2.清空工作空间和屏幕: 采用下面的代码: ...

  • Matlab如何实现函数重载?Matlab实现函数重载的方法

    大家应该都知道C++和Java编程能够实现函数的重载,而当我们使用Matlab的一些函数,如:plot函数,可以发现该函数可以有不同的输入,如:plot(data).plot(t,data)和plot ...

  • matlab中if语句使用方法和实例

    有时候我们在使用matlab编程的时候,想使用if语句,怎么使用呢,下面来分享一下方法 操作方法 01 第一步我们首先需要了解if语句是一种选择判断语句,可以和for语句结合使用,也可以单独使用,这里 ...