matlab图像处理-灰度拉伸原理方法
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命名end 20210311