高光谱数据预处理算法——多元散射校正(MSC)

多元散射校正(MSC)是高光谱数据预处理常用的算法之一,MSC可以有效的消除由于散射水平不同带来的光谱差异,从而增强光谱与数据之间的相关性。该方法通过理想光谱修正光谱数据的基线平移偏移现象,而实际中,我们无法获取真正的理想光谱数据,因此我们常常假设所有光谱数据的平均值作为”理想光谱”。

MSC具体实现方法如下:

①求得所有光谱数据的平均值作为“理想光谱“;

②将每个样本的光谱与平均光谱进行一元线性回归,求解最小二乘问题得到每个样本的基线平移量和偏移量;

③对每个样本的光谱进行校正:减去求得的基线平移量后除以偏移量,得到校正后的光谱;

下面给出MSC算法的MATLAB代码:

function x_msc=my_msc(x,x_sta)

% This function can perform multivariate scattering correction on the data
% x is the input data,x_sta is standard data,x_msc is output data
% Auther:等等登登-Ande
% Email:18356768364@163.com

[m,n]=size(x);
A=[ones(1,n)' x_sta'];
%对A矩阵SVD分解
[u s v]=svd(A);
%SVD求解最小二乘问题
A_plus=v*pinv(s)*u';
C=A_plus*x';%C即为所要求解的系数矩阵
%对原始光谱进行处理,减去偏移量与系数
P=C(1,:)
bais=P'*ones(1,n);
x_msc1=x-bais;
P=C(2,:);
coeff=P'*ones(1,n);
x_msc=x_msc1./coeff;

MSC效果图如下: 

原始数据
原始数据
校正数据

 

评论 32
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值