本文对slena.jpg进行了单层和多层的分解与重构,利用方差或小波变换的性质对带状噪声进行了去除。实验处理的图片为slena.jpg

代码如下:

  1. 基于小波变换性质的带状噪声去除

通过小波变换分离出竖直分量,移除后即可减缓竖线影响,但是会丢失大量细节,当N较大时,会使得图像模糊不清

function U()clear;clc;Wavelet_decomposition_Banded_nois_removal()% 用小波变换处理带状噪声
function Wavelet_decomposition_Banded_nois_removal()[X,map] = imread('slena.jpg');  % 读取文件
%     [X,map] = imread('football.jpg');figure('Name','小波变换');  % 开一个叫小波变换的窗口subplot(2,2,1);imshow(X);title('slena.jpg原图');   % 显示原图N=3;wname = 'sym5';X_1=Wavelet_decomposition(X(:,:,1),N,wname);X_2=Wavelet_decomposition(X(:,:,2),N,wname);X_3=Wavelet_decomposition(X(:,:,3),N,wname);subplot(2,2,2),imshow(cat(3,X_1,X_2,X_3),[]),title(wname);wname = 'db1';X_1=Wavelet_decomposition(X(:,:,1),N,wname);X_2=Wavelet_decomposition(X(:,:,2),N,wname);X_3=Wavelet_decomposition(X(:,:,3),N,wname);subplot(2,2,3),imshow(cat(3,X_1,X_2,X_3),[]),title(wname);wname = 'haar';X_1=Wavelet_decomposition(X(:,:,1),N,wname);X_2=Wavelet_decomposition(X(:,:,2),N,wname);X_3=Wavelet_decomposition(X(:,:,3),N,wname);subplot(2,2,4),imshow(cat(3,X_1,X_2,X_3),[]),title(wname);
end% 对RGB每个片的单独处理
function img = Wavelet_decomposition(X,N,wname)[C,S] = wavedec2(X, N, wname);  % 小波分解CA = appcoef2(C,S, wname,N);  % 提取直通分量for i = N:-1:1CH = detcoef2('h',C,S,i);  % 提取水平分量
%         CV = detcoef2('v',C,S,i);  % 提取垂直分量CV = [];CD = detcoef2('d',C,S,i);  % 提取对角分量CA = idwt2(CA,CH,CV,CD,wname);
%         CA = idwt2([],[],CV,[],wname);endimg = uint8(CA);return
end

实验结果:

2.基于方差的带状噪声去除

通过对图片的分析,我们可以看出,图像中的带状噪声部分,像素值差异明显比正常部分要小,所以我们可以通过方差来确定噪声具体位置,并用左右相邻正常像素值来代替它,这样丢失的细节相比上一种更少。

function U()clear;clc;Banded_nois_removal()% 基于方差实现的带状噪声处理
function Banded_nois_removal()[X,map] = imread('slena.jpg');  % 读取文件figure('Name','基于方差的带状噪声处理');  % 开一个叫带状噪声处理的窗口subplot(1,2,1);imshow(X);title('slena.jpg原图');   % 显示原图wname = 'haar';X_1=Variance(X(:,:,1),wname);X_2=Variance(X(:,:,2),wname);X_3=Variance(X(:,:,3),wname);subplot(1,2,2),imshow(cat(3,X_1,X_2,X_3),[]),title('方差处理');
endfunction X = Variance(X,wname)[cA,cH,cV,cD]=dwt2(X,wname);A=idwt2(cA,[],[],[],wname);H=idwt2([],cH,[],[],wname);V=idwt2([],[],cV,[],wname);D=idwt2([],[],[],cD,wname);[x,y]=size(cA);img = zeros(x,y);v_cA = var(cA);  % 算出方差v1=0;v2=0;for j =1:yif v_cA(j)<5000 % 方差太小,应该是竖线% 左右找找方差大的列,取它俩平均值v1=0;v2=0;for i = j+1:yif v_cA(i)>700v2 = i;break;endendfor i = j-1:-1:1if v_cA(i)>700v1 = i;break;endendif v1==0 v1  = v2;endif v2==0 v2=v1;endfor i = 1:ximg(i,j)=(cA(i,v1)+cA(i,v2))/2;endelsefor i = 1:ximg(i,j)=cA(i,j);endendend
%     img =medfilt2(img);   % 中值滤波
%     h = 1/16.*[1 2 1 ;2 4 2 ;1 2 1];
%     img = filter2(h,img);   % 高斯滤波X=uint8(idwt2(img,cH,[],cD,wname));
end

实验结果:

其他:

对于小波变换的垂直分量,可以不完全去除,而对其进行滤波处理,可以减少细节丢失。

方差具体值的选取比较依赖于经验和试错,普适性较差。

matlab 使用小波变换和方差性质处理带状噪声相关推荐

  1. MATLAB中均值、方差、标准差、协方差、相关性的计算

    公式 1.均值 2.方差 3.标准差\均方差 4.协方差 5.相关性 6.加权均值 7.加权方差 8.加权标准差 MATLAB代码 样本定义 %% x=[1 2 3 3 2 1]' y = [1 2 ...

  2. MATLAB基于小波变换的语音信号去噪算法改进

    MATLAB基于小波变换的语音信号去噪算法改进 概述 0. 需要调用的子函数 0.1 Gnoisegen函数 0.2 snrr函数 1. 语音信号输入和加噪 1.1 语音信号输入 1.2 语音信号加噪 ...

  3. dft对称性 matlab实验,数字信号处理实验 matlab版 离散傅里叶变换的性质

    数字处理实验 matlab版 山大学生最适用 本人自己写的 因为时间比较久了 不能完全保证出现代码都能运行 但95%还是能保证的 谢谢 实验13 离散傅里叶变换的性质 (完美格式版,本人自己完成,所有 ...

  4. matlab 统计基本函数 var方差

    matlab 统计基本函数 var方差 matlab中的方差函数var的用法及具体分析: 首先我们应该清楚的区分两个概念,即方差和样本方差的无偏估计, 简要来说就是,方差公式中分母上是N,而样本方差无 ...

  5. 011 数学期望、方差及方差性质

    011 数学期望.方差及方差性质

  6. HDU - 5073 Galaxy 思维+方差性质

    题目链接 题意: 一共有N个星球,其星球围绕着其中心旋转,现在你可以去掉最多K个星球,使得其最后的:∑ni=1d2i\sum_{i=1}^n d_i^2最小 其中di表示第i个点到中心的距离.当然随着 ...

  7. 误差、方差、偏差、噪声、训练误差+验证误差、偏差方差窘境、错误率和误差、过拟合与欠拟合

    误差.方差.偏差.噪声.训练误差+验证误差.偏差方差窘境.错误率和误差.过拟合与欠拟合 目录

  8. 小波变换图像去噪matlab,基于小波变换的MATLAB汽车图像去噪

    1.引言在图像中总是存在有许多的噪声,为了更好地对图像进行分析,就必须在图像预处理中减小图像中的噪声.近年来,小波分析技术在图像处理应用上取得了一些新的进展.小波分析是泛函分析.傅里叶分析.样条理论. ...

  9. 小波分析加密 matlab,基于小波变换的数字图像加密算法

    小波变换是傅里叶变换发展史上里程碑式的进展,小波变换在时域和频域上同时具有良好的局部化性质,并对各种信号特征进行多分辨率分析有极大的适应性,已广泛用于信号与图像处理.语言识别与合成等科技领域.那么今天 ...

最新文章

  1. 求助:谁可以给我点share point 开发的资料
  2. C/C++ 为什么#ifndef 头文件 要用大写加下划线?(这就是一种约定俗成的规范)
  3. github和gitlab仓库一起使用
  4. LeetCode 20. 有效的括号 golang(三)
  5. python百度百科-Python语言的发展简史
  6. 版本管理-SVN本地版本管理
  7. 第一篇博客——开天辟地
  8. 高效办公之远程电脑控制:再也不用带着厚重笔记本
  9. 移动边缘计算——计算卸载
  10. spyder python_spyder python2.7下载
  11. FFmpeg常用指令记录sdp中提取sps/pps信息sps/pps(STAP-A解析)
  12. Android WebView 无法下载文件的问题
  13. 世界首富马斯克的编程水平怎么样?
  14. wps之word设置页眉
  15. Email,电子邮箱免费注册流程
  16. antd-select拼音首字母模糊查询
  17. 离散数学知识点总结(4):合取范式,析取范式
  18. Vue3源码-Proxy
  19. java解惑之最后的笑声
  20. latex公式图片识别(转换为latex语法格式)

热门文章

  1. [安卓]解决因为冻结了系统程序导致不能开机的问题
  2. 支付宝小程序码管理生成
  3. SpringBoot + Vue实战开发
  4. Codeforces 662C
  5. 【大数据人工智能AI2.0】GPT-4 office 全家桶发布,打工人凛冬将至 :Microsoft 365 Copilot (副驾驶)简介
  6. 【demo】Excel批量设置超链接(java代码实现)
  7. Java Gui 项目打包成可执行的Jar包
  8. React 高阶组件示例
  9. [附源码]Python计算机毕业设计Django高校体育场馆管理系统
  10. Java实现超市会员管理系统