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

2025-10-27 20:14:41

1、打开图像

[FileName, FilePath]=uigetfile('*.tif;*.jpg;*.png;*.img;*.gif;','请选择图像数据');

str=[FilePath FileName];

Image=imread(str);

% 以对话框的形式选择打开一幅图像

[M,N,nDims]=size(Image);

Image=im2double(Image);

% 获取图像的尺寸和波段数

2、灰度拉伸

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中

3、保存输出

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命名

1、灰度图拉伸结果对比

上图:原灰度图

下图:灰度拉伸结果

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

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

2、RGB真彩色图拉伸结果对比

上图:原RGB真彩色图

下图:灰度拉伸结果

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

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

3、多波段遥感影像拉伸结果对比

上图:原多波段遥感影像(TM321组合)

下图:灰度拉伸结果(TM321组合)

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

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

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢