高光谱图像去噪(一)

传统的逐波段的对每个灰度图像进行去噪,如基于非局部的算法、SVD、BM3D等。忽略了不同光谱波段之间的强相关性,去噪性能差。

存在的问题:

1)不同波段的噪声强度往往是不同的,某些波段可能会倍强噪声污染,需要在对低信噪比的波段去噪的同时保护高信噪比波段;

2)噪声通常是混合存在的,如高斯噪声、条带噪声、脉冲噪声等,不同噪声的特性和分布特征也不同。

结合空间和光谱信息的去噪方法:基于变换域和基于空间域两种。

基于变换域:小波变换、PCA、傅里叶变换,性能依赖于变换函数的选择;

基于空间域:分为滤波器和正则化两种。

a、基于滤波器的方法将高光谱数据是为一个完整的三维立方体(三维张量),使用张量分解法去噪。

b、基于正则化方法通过先验知识建立模型,如稀疏表示、全变分(TV)、稀疏矩阵分解、低秩表示等。

全变分正则化(TV)可以有效保留形状边缘并增强分段平滑度,消除单一噪声效果较好。

高光谱图像的噪声退化模型:

Y=X+S+N

其中,X为纯净图像,S为稀疏噪声,N为零均值的高斯噪声。Y、X、S、N大小均为M*N*P,M*N为空间尺寸,P为波段数。

将高光谱每个波段的图像转换为具有MN个元素的列向量,即

 最终得到一个大小为MN*P的二维矩阵。

高光谱图像去噪是一个从三维张量Y中分理出稀疏噪声S和高斯噪声N得到纯净图像X的过程。常用的求解思路是添加未知的高光谱图像和混合早生的先验信息。在此框架下进行去噪,最广泛应用的方法为鲁棒主成分分析法(RPCA)。

稀疏表示

稀疏表示,就是使用尽量少的基对原始信号进行表示。原始基(原子)组成的集合即为字典,字典具有高度冗余性。

对于一幅噪声图像Y=X+N,可通过

进行求解。

 X是由D的原子线性组合得到的,a中的绝大多数元素均为0,则X=Da。

X在D上的稀疏表示,可以通过对Y的估计得到:

 得到D的过程被称为字典学习,得到a的过程被称为稀疏编码。

 加权核范数

基于核范数最小化的低秩刻画在图像去噪中得到了广泛研究。存在的问题是大部分基于核范数最小化的低秩刻画在求解的过程中对每一个奇异值都进行同等对待。一般地,较大的奇异值代表图像的主要特征,较小的奇异值代表噪声部分。因此在削减奇异值的过程中应削减小奇异值保留大奇异值。

### 高光谱图像中的Transform方法 高光谱图像由于其丰富的光谱信息,在多个领域有着广泛的应用。然而,这些图像容易受到各种声的影响,影响数据分析的质量和准确性。为此,研究者们开发了多种用于高光谱图像的技术,其中包括基于变换域(transform domain)的方法。 #### 傅里叶变换(Fourier Transform) 傅里叶变换是种经典的信号处理工具,能够将时域或空域的数据转换到频率域表示。通过这种方式,可以在频域内更容易地区分有用信号与声成分,并采取相应的措施来抑制后者。具体来说,对于高光谱图像而言,可以通过设定阈值的方式除高频部分所携带的随机声[^2]。 ```matlab % MATLAB代码示例:使用FFT进行简单的维傅立叶变换 Fs = 1000; % Sampling frequency T = 1/Fs; % Sample time L = 1000; % Length of signal t = (0:L-1)*T; % Time vector S = 0.7*sin(2*pi*50*t) + sin(2*pi*120*t); X = S + 2*randn(size(t)); Y = fft(X); P2 = abs(Y/L); P1 = P2(1:L/2+1); P1(2:end-1) = 2*P1(2:end-1); f = Fs*(0:(L/2))/L; plot(f,P1) title('Single-Sided Amplitude Spectrum of X(t)') xlabel('f (Hz)') ylabel('|P1(f)|') ``` #### 小波变换(Wavelet Transform) 相比于传统的傅里叶分析只提供了全局性的频率描述,小波变换则能够在时间和尺度两个维度上提供局部化的特征表达能力。这使得它非常适合用来捕捉那些随位置变化而不同的纹理模式以及瞬态现象。在实际应用当中,通常会先对原始数据执行离散小波分解操作,接着依据某些准则选取合适的系数保留下来作为重建的基础;最后再利用逆向过程恢复出较为干净的结果图象。 ```matlab % MATLAB代码示例:使用DWT进行二维小波变换并尝试 [C,S] = wavedec2(I,3,'db4'); thr = wthrmngr('img','onecol',C,S); cleanedCoefficients = wthresh(C,'h',thr); reconstructedImage = waverec2(cleanedCoefficients,S,'db4'); imshow(reconstructedImage); title('Reconstructed Image after Wavelet Denoising'); ``` #### 字典学习与稀疏编码 除了上述经典手段之外,近年来兴起了种新的思路——即借助于机器学习框架下的字典训练机制来进行更高效的表征学习。该类方案假设自然场景下采集得到的真实世界样本往往具备某种内在规律可循,因此只要事先构建好组基底,则后续便可通过求解线性组合权重的方式来近似重构目标对象的同时达到净化效果。特别地,当考虑到不同通道间存在较强的相关关系时,还可以进步引入联合建模策略以增强整体鲁棒性表现[^4]。 ```matlab % 使用K-SVD算法实现字典学习的个简化版本 function D = ksvd(S,K,maxIter) [m,n] = size(S); D = randn(m,K); for iter=1:maxIter, % E-step: Sparse coding using OMP algorithm. alpha = omp(D,S); % M-step: Update dictionary atoms one by one via SVD decomposition. for j=1:K, idx = find(alpha(j,:)>0); if ~isempty(idx), Ej = S(:,idx)-D*alpha(:,idx)+... repmat(D(:,j),1,length(idx)).*alpha(j,idx)'; [~,~,V] = svds(Ej,1); D(:,j)= V(:,end); end end end end ```
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值