Gram-Schmidt图像融合
遥感图像融合的定义是通过将多光谱低分辨率的图像和高分辨率的全色波段进行融合从而得到信息量更丰富的遥感图像。常用的遥感图像融合方法有Brovey\PCA\Gram-Schmidt方法。其中Gram-Schmidt方法效果较好,且应用广泛。该方法由CraigA.Laben等人提出,已经被封装到多个遥感图像处理软件中。对于此算法的叙述,国内的李存军写的《两种高保真遥感影像融合方法比较》复述的很清楚,结合原文看清晰易懂。
具体步骤如下:

1.首先预处理数据,计算多光谱影像和全色波段重叠区域,得到裁剪后的多光谱影像和全色波段。
2.随后模拟产生低分辨率的全色波段影像用于作为GS变换的第一分量。通常是将低分辨率的多光谱影像根据光谱响应函数按一定权重wi进行模拟,得到模拟的全色波段灰度值。或者把全色波段影像模糊,缩小到与多光谱影像相同大小。

这里我们最终对多光谱影像,按波段计算了平均值,来模拟全色波段。
3.接着就是重头环节。GS变换--施密特正交化,具体原理可以百度,这里给出修改后的施密特正交化公式。其中h()是计算矩阵内积,然后做除法。以模拟波段为第一波段,多光谱影像所有波段为后续波段,做GS变换。
(这里有不懂的地方,按GS正交化,分母应该是相同分量的内积,为什么在论文里,却带了个平方???)

施密特正交化

GS融合正变换
4.接着根据GS第一分量,即模拟波段的mean和var,对全色波段进行修改。

5.然后把修改后的全色波段作为第一分量,进行GS逆变换,输出n+1个波段,去除第一个波段,就是融合后的结果。

最后分析一下具体编码步骤:
1)overlay,求重叠区域图像的函数
2)resample,重采样把多光谱影像重采样到全色波段的形式
3)simulate,模拟全色波段的函数
4)GS正变换
5)modify函数,修改全色波段作为GS第一分量
6)GS逆变换
Gram-Schmidt图像融合的更多相关文章
- paper 101:图像融合算法及视觉艺术应用
1:基于泊松方程的图像融合方法,利用偏微分方程实现了不同图像上区域的无缝融合.比较经典的文章: P. Pérez, M. Gangnet, A. Blake. Poisson image editin ...
- OpenCV探索之路(二十四)图像拼接和图像融合技术
图像拼接在实际的应用场景很广,比如无人机航拍,遥感图像等等,图像拼接是进一步做图像理解基础步骤,拼接效果的好坏直接影响接下来的工作,所以一个好的图像拼接算法非常重要. 再举一个身边的例子吧,你用你的手 ...
- Python 调用图像融合API
Python 调用图像融合API 本文记录使用Python,调用腾讯AI开放平台的图像融合API.官网给出的Demo用的是PHP,博主作为Python的粉丝,自然想用它来和『最好的』的语言一较高下,顺 ...
- OpenCV中图像融合
准备2副背景图像,注意图像黑色的部分,是作为mask用的,我们会用灰度图的方式打开它们,这时黑色的部分值为0,则图像融合时候,可以把第二幅图像在黑色的部分显示出来. 代码非常简单,注意就是图 ...
- Win8 Metro(C#)数字图像处理--2.73一种背景图像融合特效
原文:Win8 Metro(C#)数字图像处理--2.73一种背景图像融合特效 /// <summary> /// Image merge process. /// </summar ...
- 基于均值坐标(Mean-Value Coordinates)的图像融合算法的具体实现
目录 1. 概述 2. 实现 2.1. 准备 2.2. 核心 2.2.1. 均值坐标(Mean-Value Coordinates) 2.2.2. ROI边界栅格化 2.2.3. 核心实现 2.2.4 ...
- 基于均值坐标(Mean-Value Coordinates)的图像融合算法的优化实现
目录 1. 概述 2. 实现 2.1. 原理 2.2. 核心代码 2.3. 第二种优化 3. 结果 1. 概述 我在之前的文章<基于均值坐标(Mean-Value Coordinates)的图像 ...
- OpenCV计算机视觉学习(2)——图像算术运算 & 掩膜mask操作(数值计算,图像融合,边界填充)
在OpenCV中我们经常会遇到一个名字:Mask(掩膜).很多函数都使用到它,那么这个Mask到底是什么呢,下面我们从图像基本运算开始,一步一步学习掩膜. 1,图像算术运算 图像的算术运算有很多种,比 ...
- 如何使用Python实现图像融合及加法运算?
摘要:本篇文章主要讲解Python调用OpenCV实现图像融合及加法运算,包括三部分知识:图像融合.图像加法运算.图像类型转换. 本文分享自华为云社区<[Python图像处理] 五.图像融合.加 ...
随机推荐
- Mac使用Charles抓取ios手机APP中的https请求
1.配置Http代理 Port为监听端口号,默认为8888,勾选Enable transparent HTTP proxying,接着勾选SOCKS proxy,可以监听Socks请求 2.安装Cha ...
- 关于document.write()方法重绘页面问题
学习的时候,document.write()被告知是用来将内容写进页面里面,同时也被告知document.write()方法会重绘页面,但是关于什么时候会重绘,什么时候不会重绘页面没有太多解释. 首先 ...
- bugku-misc 9-16
宽带信息泄露 拿到一个bin后缀的文件,知道是一个二进制文件,但是题目提到的和宽带有关,flag就是用户名.可以使用RoutePassView这个工具,使用的时候记得关闭杀毒软件. 工具可以在这里下载 ...
- 月薪60k,仍无人问津,腾讯阿里到底有多缺这类程序员?
不知道大家发现没,近几年,国内对音视频人才需求越来越大了,在某招聘网站上居然薪酬高达60k. 从未来的大趋势来看,随着5G时代的到来,音视频慢慢变成人们日常生活中的必须品.除了在线教育.音视频会议.即 ...
- Windows安装Hyper-V并优化部署Linux虚拟机
安装Hyper-V 打开服务器管理器-->添加角色和功能-->下一步,选择Hyper-V,如图所示 然后一直默认往下走,一直到安装完成,然后重新启动计算机,如图所示 其中涉及的虚拟交换机. ...
- 端口,InetSocketAddress类的使用
端口 端口表示计算机上的一个程序的进程: 不同的进程有不同的端口号!用来区分软件 被规定:0~65535 TCP,UDP:65535*2 单个协议下,端口号不能冲突 端口分类: 公有端口:0~1023 ...
- [C++]-unordered_map 映射
unordered_map和map的区别请点击这里. 本文中的代码跟[C++]-map 映射中的代码仅仅是把定义的map类型数据定义成了unordered_map类型数据. 代码 #include&l ...
- USB 3.0 开发要点
最近在公司里安排了我一个新的任务,那就是USB3.0的研发.对于我之前都是做ARM+LINUX和单片机软件研发的来说,虽然之前都是做驱动程序和应用程序,但是没有做与USB 相关的开发,毕竟这是第一次. ...
- git 切换分支 本地代码失踪找回办法
解决方案: https://blog.csdn.net/hupoling/article/details/79017382 主要步骤: git reflog 然后找到之前commit的分支 git c ...
- miniFTP项目集合
项目简介 在Linux环境下用C语言开发的Vsftpd的简化版本,拥有部分Vsftpd功能和相同的FTP协议,系统的主要架构采用多进程模型,每当有一个新的客户连接到达,主进程就会派生出一个ftp服务进 ...