MATLAB在遥感图像处理中的应用

**目的:**使用MATLAB软件通过不同波长的不同材料特定波长的对比度,实现给定遥感图像的直方图匹配。利用多光谱彩色复合遥感影像增强方法对基于HIS色彩变换和小波变换的遥感影像进行增强、交易处理等。提升了遥感影像的色彩质量、空间分辨率、可以更直观准确地反映数据信息,提高办公效率。
在这里插入图片描述

(1)功能栏:在此栏有很多操作设置,可以新建m文件(m文件便于填写大量代码)编译,可以保存代码。如果只是一个函数调用,建议用(command window)。
(2)搜索栏:正如图片所见,右上角那里有个“?”按钮,点击那里即可进入文档的主页,又或者在旁边的搜索栏输入自己想要查找的函数,也可以直接在command window窗口输入help。
**(3)文件路径:**这里很重要的时,你要操作的图片一定要放在此路径内,不然会出现找不到图片的错误。因为读取图片是从当前的文件路径读取的,所以图片必须放在这里。当然,你可以修改当前路径,转到你放图片的路径上,还有一种方法就是你可以在imread()这里填上图片的路径。
**(4)命令窗口:**这是我们经常要用到的窗口,MATLAB 之所以强大也是在此,逐行编译。也就是你写50行代码,第50行出错,它也会编译到49行。
**(5)workspace:**这个窗口存放着图片的数组信息。我们都知道,我们看到的是图片,而电脑看到的是一堆数字,也就是矩阵。其实一切形式都可以化为矩阵的形式,矩阵是以数组形式的方式。即使一个数字也可看作1*1矩阵,当你读取图片时,图片的像素就在此保存,点击可查看。
利用MATLAB对遥感图像进行直方图匹配处理的的代码如下:

 >> clear all;
f=imread('moon.tif');%加载初始图像
subplot(2,2,1),imshow(f);%初始图像
title('(A)原始图像');
subplot(2,2,2),imhist(f);%初始图像的直方图
title('(B)原始图像的直方图');
g=histeq(f,256);%对原始图像进行直方图均衡化
subplot(2,2,3),imshow(g);
title('(C)直方图均衡化后的图像');
subplot(2,2,4),imhist(g);
title('(D)均衡化后的直方图');


直方图匹配增强:

function p=manualhist
repeats=true;
quitnow='x';
p=twomodegauss(0.15,0.05,0.75,0.05,1,0.07,0.002);
while repeatss=input('Enter m1,sig1,m2,sig2,A1,A2,k,OR x to quit:','s');if s==quitnowbreakendv=str2num(s);if numel(v)~=7;disp('Incorrect number of inputs')continue;
end
p=twomodegauss(v(1),v(2),v(3),v(4),v(5),v(6),v(7));
figure,plot(p);
xlim([0 255]);
break
end
它不仅保留了原始直方图的一般形状,而且还在图像的黑暗区域中平滑过渡。
function p=twomodegauss(m1,sig1,m2,sig2,A1,A2,k)
c1=A1*(1/((2*pi)^0.5)*sig1);
k1=2*(sig1^2);
c2=A2*(1/((2*pi)^0.5)*sig2);
k2=2*(sig2^2);
z=linspace(0,1,256);
p=k+c1*exp(-((z-m1).^2)./k1)+c2*exp(-((z-m2).^2)./k2);
p=p./sum(p(:));
end
子函数unction p=twomodegauss(m1,sig1,m2,sig2,A1,A2,k)计算一个已经归一化到单位区域的双峰高斯函数,以便可以把它当成一个指定的直方图。程序的输出p由该函数产生的256个等间隔点组成,它是我们需要的指定直方图。利用gg=histeq(f,p)可以得到指定直方图的图像。代码如下:
clear all;
p=manualhist;%获取一个指定的函数
f=imread('F:\Program Files (x86)\toolbox\images\imdata\moon.tif');
gg=histeq(f,p);%使结果图像的直方图与获取函数图像一致
figure,
subplot(1,2,1),imshow(f);
subplot(1,2,2);
imhist(gg)
title(‘期望图像直方图’)  ;


利用多光谱色彩复合遥感图像增强的代码如下:

clear all;
truecolor =multibandread('paris.lan',[512,512,7],'uint8=>uint8',...128,'bil','ieee-le',{'Band','Direct',[3 2 1]});%从多光谱图像中构建真彩色复合图像
figure;%真彩色复合图像的对比度非常低,其真彩色不均衡
imshow(truecolor);
title('Truecolor Composite(Un-enhanced)')
text(size(truecolor,2),size(truecolor,1)+15,...
'Image courtesy of Space Image,LLC','FontSize',7,'HorizontalAlignment','right');
Figure%使用直方图探测未增强的真彩色复合图像
imhist(truecolor(:,:,1))
title('Histogram of the Red Band (Band 3)');
r =truecolor(:,:,1);%使用相关性探测未增强的真彩色复合图像
g =truecolor(:,:,2);
b =truecolor(:,:,3);
figure
plot3(r(:),g(:),b(:),'.')
grid('on')
xlabel('Red(Band 3)')
ylabel('Green (Band 2)')
zlabel('Blue (Band 1)')
title('Scatterplot of the Visible Bands');
set(gcf,'color','w');
stretched_truecolor =imadjust(truecolor,stretchlim(truecolor));%对真彩色复合图像进行对比度扩展增强处理
figure%在对比度扩展图像增强后检测直方图变化
imshow(stretched_truecolor)
title('Truecolor Composite after Contrast Stretch')
figure%对真彩色图像进行去相关增强处理
imhist(stretched_truecolor(:,:,1))
title('Histogram of Red Band (Band 3) after Contrast Stretch');
decorrstretched_truecolor =decorrstretch(truecolor,'Tol',0.01);
figure%取相关扩展图像处理后检测相关性变化
imshow(decorrstretched_truecolor)
title('Truecolor Composite after Decorrelation Stretch')%构建和增强一个CIR复合图像文件
r =decorrstretched_truecolor(:,:,1);
g =decorrstretched_truecolor(:,:,2);
b =decorrstretched_truecolor(:,:,3);
figure
plot3(r(:),g(:),b(:),'.')
xlabel('Red(Band 3)')
ylabel('Green (Band 2)')
zlabel('Blue (Band 1)')
title('Scatterplot of the Visible Bands after Decorrelation Stretch')
set(gcf,'color','w');
CIR =multibandread('paris.lan',[512,512,7],'uint8=>uint8',...128,'bil','ieee-le',{'Band','Direct',[4 3 2]});%进行去相关图像增强处理
stretched_CIR =decorrstretch(CIR,'Tol',0.01);
figure
imshow(stretched_CIR)
title('CIR after Decorrelation Stretch')


基于HIS彩色变换对图像进行融合处理

clc
clear
f1=imread('F:\360data\重要数据\我的文档\MATLAB\high.jpg')%读取高分辨率图像
subplot(2,2,1),imshow(f1);
title('高分辨率影像')
[M,N]=size(f1);%利用插值将多光谱图像放大到与高分辨率图像一样大小
f2=imread('F:\360data\重要数据\我的文档\MATLAB\low.jpg');
f2=imresize(f2,[M,N],'bilinear');
subplot(2,2,2),imshow(f2);
title('多光谱影像')
f1=double(f1);%将RGB空间转换为HIS
f2_hsi=rgb2hsv(f2);
f2_h=f2(:,:,1);
f2_s=f2(:,:,2);
f2_i=f2(:,:,3);
[c1 s1]=wavedec2(f1,1,'sym4');%进行小波分解
f1=im2double(f1);
[c2_h s2_h]=wavedec2(f2_h,1,'sym4');
[c2_s s2_s]=wavedec2(f2_s,1,'sym4');
[c2_i s2_i]=wavedec2(f2_i,1,'sym4');
c_h=0.5*(c2_h+c1);%对系数进行融合
c_s=0.5*(c2_s+c1);
c_i=c1;
f_h=uint8(waverec2(c_h,s1,'sym4'));
f_h=histeq(f_h);
f_s=uint8(waverec2(c_i,s1,'sym4'));
f_s=histeq(f_s);
f_i=uint8(waverec2(c_i,s1,'sym4'));
f_i=histeq(f_i);
g=cat(3,f_h,f_s,f_i);%显示融合后图像
subplot(2,2,3),imshow(g);
title('HIS融合后图像');


结论:通过直方图匹配处理,增强处理和遥感图像融合处理,图像视觉效果是固定的,改进的空间分辨率,改进的目标特征,更正的分类准确性和改进的信息完善。根据物体光谱的不同颜色(植被红,湿地绿,建筑物褐,沙漠橙),可以更加直观,准确地获取遥感影像的信息。空间分辨率可以直接调整以确定信息类别。光谱分辨率可以捕捉材料特征波长的微小差异,辐射分辨率可以获得光谱信号强度的灵敏度和辨别能力。遥感图像上像素的亮度对应于地面目标的反射或辐射电磁能量的大小。通过校正,可以改善遥感系统的光谱反射率和辐射率。通过遥感影像融合来复合时空冗余或互补多源数据,优化图像信息。

MATLAB在遥感图像处理中的应用相关推荐

  1. matlab在遥感技术中的应用,C#.net和Matlab在遥感图像处理中的应用

    1概述在气象预报和对太空其他星球研究方面,数字图像处理技术也发挥了相当大的作用.利用Matlab可以对遥感图像进行图像增强.滤波,融合等,可大大推动在遥感图像处理的深入研究和广泛应用.VisualC# ...

  2. 把计算机视觉算法应用遥感,RANSAC算法及其在遥感图像处理中的应用

    摘要: 在计算机视觉,工程设计等领域都需要根据相关数据集确定模型参数,但是所得到的数据中往往存在大量不符合模型的异常数据(又被称为野点),这些野点对模型参数稳健性有很大的干扰.经典的参数估计算法如最小 ...

  3. 深度学习在遥感图像处理中的六大应用

    2006年,加拿大多伦多大学教授.机器学习领域的泰斗Geoffrey Hinton和他的学生在<科学>上发表了一篇文章,开启了深度学习在学术界和工业界的浪潮. 深度学习摧枯拉朽般地实现了各 ...

  4. matlab 过度曝光,MATLAB:补偿图像处理中的过度曝光/过饱和度

    我正在研究一个程序,该程序拍摄了椭圆形红色激光光斑已经扩散成椭圆形的斑点. 要做这个应用程序的初步理论测试,我用单反相机拍摄了照片,并在Matlab中处理了图像.但是,通常这些照片过度曝光/过度饱和. ...

  5. matlab 结构张量,图像处理中的结构张量(structure tensor)

    结构张量(structure tensor) 主要用于区分图像的平坦区域.边缘区域与角点区域. 此处的张量就是一个关于图像的结构矩阵,矩阵结构构成如下: Rx,Ry分别为图像的水平与垂直梯度,而后进行 ...

  6. matlab对遥感影像投影转换,在matlab中实现遥感影像和shp文件的结合显示

    clc;close all;clear; road=shaperead('boston_roads.shp'); %读取shape文件 figure, mapshow('boston.tif'); % ...

  7. 利用MATLAB打造属于自己的无人机遥感图像处理系统(1)

    文章目录 前言 一.系统结构框架 1.1.功能演示模块结构框架 1.2.图像处理模块结构框架 二.功能描述 1.功能演示模块 2.图像处理模块 三.运行环境 四.系统设计开发环境 五.系统安装说明 前 ...

  8. matlab moveverage,MATLAB在数字图像处理课程教学中的应用

    ISSN1672-4305 CN12-1352/N 实 验 室 科 学 LABORATORY SC I ENCE 第14卷 第1期 2011年2月 Vol 14 N o 1 Feb 2011 MATL ...

  9. 图像处理中媲美matlab的python包——scikit-image(skimage)包的用法详解

    前言: 基于python的图片处理包还是很多的,比如PIL,Pillow, opencv, scikit-image等.其中,PIL和Pillow只提供最基础的数字图像处理,功能有限:opencv本质 ...

最新文章

  1. 在读研、竞赛和实习中追求平衡
  2. dataframe groupby_PySpark SQL——SQL和pd.DataFrame的结合体
  3. 放眼2018年,我们对虚拟现实产品有五大疑问
  4. c语言 ctype,C语言标准库系列之 -
  5. 数据增强_浅析数据增强
  6. java核心api_Java核心API之字符流使用介绍
  7. OpenCV基本的SIMD的实例(附完整代码)
  8. 反思快速在新项目中找字段的方法
  9. java学习(148):三个参数的输入流
  10. java 树 右键菜单_jsp代码 树上加右键菜单
  11. 微信小程序之验证码短信倒计时
  12. ON DUPLICATE KEY UPDATE单个增加更新及批量增加更新的sql
  13. 【Redis】Redis入门详解(一)
  14. 网上传说软件测试培训真的那么黑心吗?都是骗局?
  15. 时间管理的六项基本原则
  16. 微信小程序确认取消弹窗
  17. 通过js脚本处理剪切板(简单而强大的效率工具)
  18. 舞蹈课 (C++堆的优先级与重载)
  19. teablue数据分析_京东消费者数据分析
  20. led灯条维修_led灯条坏了怎么修

热门文章

  1. python学习----网页图片文字识别(简单)
  2. python fpga chips_如何成为一名合格的FPGA老手-可编程逻辑-与非网
  3. 2021-12-22 vue移动端卖座电影项目(十五) 如何将项目上传到远程仓库
  4. 联发科技推出曦力A系列 掀起智能手机科技普及革命
  5. i12蓝牙耳机充电仓怎么看充满电_安卓手机想要实现苹果耳机一样的连接动画?追求性价比可以选这个...
  6. git 如何创建新分支
  7. JDK8所有版本下载地址
  8. Qt设置高分屏属性以便支持2K,4K高分辨率,尤其手机APP
  9. GNN在下拉推荐的应用
  10. 取 json 技巧: 通过模拟器