IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 【图像去噪】基于改进小波阈值实现图像去噪matlab代码 -> 正文阅读

[人工智能]【图像去噪】基于改进小波阈值实现图像去噪matlab代码

1 简介

基于?Donoho经典小波阈值去除图像噪声基本思路,分析常用硬阈值法和软阈值法在图像去噪中的缺陷。针对这些缺陷,提出一种改进的阈值去噪法,该方法不仅可克服硬阈值不连续的缺点,还能够有效解决小波分解预估计系数与真实小波系数间存有的恒定误差。通过?Matlab仿真实验,使用改进的小波阈值法对图像去噪处理后,除 噪效果比较理想,在去噪性能指标上,PSNR(峰值信噪比)和?EPI(边缘保护指数)均好于传统阈值方法。

采集、编码或者传输图像时,图像容易遭受噪声污染,因此图像去噪尤为重要。随着对小波理论研究的深入,其应用也日趋广泛,利用小波变换进行图像去噪成为研究热点。目前,小波图像去噪 基 本 方 法 有:①利用小波变换模极大值方法进行图像去噪;②利用小波变换尺度相关性方法进行图像去 噪;③利用小波阈值去噪法进行图像去噪。上述3种基 本 方 法 中,小波阈值去噪法相对于小波模极大值法与小波变换尺度相关性法,其 运 算 量 小,实现简单且使用广泛。小波阈值去噪法也有其不足:在小波硬阈值去噪处理过程中,获取的小波系 数 预 估 计 连 续 性 差,会 造 成 重 构 信号波动,而软阈值法算出的估计小波系数虽然连续性较好,但其与真实小波系数有恒定偏差,造成重构信号精度变低,导致图像模糊。本文结合经典硬阈值和软阈值法各自的优缺点,提出一种改进的小波阈值图像去噪算法。

2 部分代码

% 对彩色图像进行去噪
clc
clear?all
close?all
I?=?imread('lena_color.png',?'png'); ? ? ? ?% 读入图像
X?=?im2double(I); ? ? ? ? ? ? ? ? ? ? ? ? ??% 转换成双精度类型

x_noise?=?noise(X,?'gaussian',?0.01); ? ? ??% 加入高斯噪声

% 提取三个通道信息
xr?=?x_noise(:, :,?1); ? ? ? ? ? ? ? ? ? ? ?% R通道
xg?=?x_noise(:, :,?2); ? ? ? ? ? ? ? ? ? ? ?% G通道
xb?=?x_noise(:, :,?3); ? ? ? ? ? ? ? ? ? ? ?% B通道

% 估计三个通道的阈值
[Cr,?Sr] =?wavedec2(xr,?2,?'sym4');
[Cg,?Sg] =?wavedec2(xg,?2,?'sym4');
[Cb,?Sb] =?wavedec2(xb,?2,?'sym4');
thr_r?=?Donoho(xr); ? ? ? ? ? ? ? ? ? ? ? ?% R通道全局阈值
thr_g?=?Donoho(xg); ? ? ? ? ? ? ? ? ? ? ? ?% G通道全局阈值
thr_b?=?Donoho(xb); ? ? ? ? ? ? ? ? ? ? ? ?% B通道全局阈值
thr_lvd_r?=?Birge_Massart(Cr,?Sr); ? ? ? ??% R通道局部阈值
thr_lvd_g?=?Birge_Massart(Cg,?Sg); ? ? ? ??% G通道局部阈值
thr_lvd_b?=?Birge_Massart(Cb,?Sb); ? ? ? ??% B通道局部阈值

% 对三个通道分别进行去噪===================================================
% ? Donoho全局阈值 软阈值公式----------------------------------------------
x_soft_r?=?wdenoise(xr,?'gbl',?'s',?thr_r,?'sym4',?2);
x_soft_g?=?wdenoise(xg,?'gbl',?'s',?thr_g,?'sym4',?2);
x_soft_b?=?wdenoise(xb,?'gbl',?'s',?thr_b,?'sym4',?2);
% ? -----------------------------------------------------------------------

% ? Donoho全局阈值 硬阈值公式----------------------------------------------
x_hard_r?=?wdenoise(xr,?'gbl',?'h',?thr_r,?'sym4',?2);
x_hard_g?=?wdenoise(xg,?'gbl',?'h',?thr_g,?'sym4',?2);
x_hard_b?=?wdenoise(xb,?'gbl',?'h',?thr_b,?'sym4',?2);
% ? -----------------------------------------------------------------------

% ? Bige-Massa策略 软阈值公式----------------------------------------------
x_soft_lvd_r?=?wdenoise(xr,?'lvd',?'s',?thr_lvd_r,?'sym4',?2);
x_soft_lvd_g?=?wdenoise(xg,?'lvd',?'s',?thr_lvd_g,?'sym4',?2);
x_soft_lvd_b?=?wdenoise(xb,?'lvd',?'s',?thr_lvd_b,?'sym4',?2);
% ? -----------------------------------------------------------------------

% ? Bige-Massa策略 硬阈值公式----------------------------------------------
x_hard_lvd_r?=?wdenoise(xr,?'lvd',?'h',?thr_lvd_r,?'sym4',?2);
x_hard_lvd_g?=?wdenoise(xg,?'lvd',?'h',?thr_lvd_g,?'sym4',?2);
x_hard_lvd_b?=?wdenoise(xb,?'lvd',?'h',?thr_lvd_b,?'sym4',?2);
% ? -----------------------------------------------------------------------

% ? 半软阈值---------------------------------------------------------------
x1_r?=?den1(xr,?'sym4',?2,?thr_r);
x1_g?=?den1(xg,?'sym4',?2,?thr_g);
x1_b?=?den1(xb,?'sym4',?2,?thr_b);
% ? -----------------------------------------------------------------------

% ? 半软阈值 + 均值滤波----------------------------------------------------
x1_5_r?=?den1_5_1(xr,?'sym4',?2,?thr_r,?0.5*thr_r);
x1_5_g?=?den1_5_1(xg,?'sym4',?2,?thr_g,?0.5*thr_g);
x1_5_b?=?den1_5_1(xb,?'sym4',?2,?thr_b,?0.5*thr_b);
% ? -----------------------------------------------------------------------

% ? 自适应阈值-------------------------------------------------------------
x4_r?=?den4(xr,?'sym4',?2);
x4_g?=?den4(xg,?'sym4',?2);
x4_b?=?den4(xb,?'sym4',?2);
% ? -----------------------------------------------------------------------

% =========================================================================

% 恢复去噪后的图像=========================================================
x_soft?=?cat(3,?x_soft_r,?x_soft_g,?x_soft_b); ? ? ? ? ? ? ? ? ? ? ? ? ?% Donoho 软阈值
x_hard?=?cat(3,?x_hard_r,?x_hard_g,?x_hard_b); ? ? ? ? ? ? ? ? ? ? ? ? ?% Donoho 硬阈值
x_soft_lvd?=?cat(3,?x_soft_lvd_r,?x_soft_lvd_g,?x_soft_lvd_b); ? ? ? ? ?%Birge-Massart 软阈值
x_hard_lvd?=?cat(3,?x_hard_lvd_r,?x_hard_lvd_g,?x_hard_lvd_b); ? ? ? ? ?% Birge-Massart 硬阈值
x1?=?cat(3,?x1_r,?x1_g,?x1_b); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?% 半软阈值
x1_5?=?cat(3,?x1_5_r,?x1_5_g,?x1_5_b); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?% 半软阈值 + 均值滤波
x4?=?cat(3,?x4_r,?x4_g,?x4_b); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?% 自适应阈值
% =========================================================================

psnr_soft?=?PSNR_color(x_soft,?X);
psnr_hard?=?PSNR_color(x_hard,?X);
psnr_soft_lvd?=?PSNR_color(x_soft_lvd,?X);
psnr_hard_lvd?=?PSNR_color(x_hard_lvd,?X);
psnr1?=?PSNR_color(x1,?X);
psnr1_5?=?PSNR_color(x1_5,?X);
psnr4?=?PSNR_color(x4,?X);

figure;?subplot(341);
imshow(X); ? ? ? ? ?title('原图像');
subplot(342);?imshow(x_noise); ? ?title('带噪声图像');
subplot(343);?imshow(x_soft); ? ??title(['Donoho 软阈值,信噪比=',num2str(psnr_soft)]);
subplot(344);imshow(x_hard); ? ??title(['Donoho 硬阈值,信噪比=',num2str(psnr_hard)]);
subplot(345);?imshow(x_soft_lvd);?title(['Birge-Massart 软阈值,信噪比=',num2str(psnr_soft_lvd)]);
subplot(346);?imshow(x_hard_lvd);?title(['Birge-Massart 硬阈值,信噪比=',num2str(psnr_hard_lvd?)]);
subplot(347);?imshow(x1); ? ? ? ??title(['半软阈值,信噪比=',num2str(psnr1?)])';
subplot(348);?imshow(x1_5); ? ? ??title(['半软阈值+均值滤波,信噪比=',num2str(psnr1_5)]);
subplot(349);?imshow(x4); ? ? ? ??title(['自适应阈值,信噪比=',num2str(psnr4)]);

% 中值滤波 均值滤波========================================================
f?=?ones(3);

% filter2函数用于图像均值滤波
x_mean_r?=?meanfilter(xr,f);
x_mean_g?=?meanfilter(xg,f);
x_mean_b?=?meanfilter(xb,f);
x_mean?=?cat(3,?x_mean_r,?x_mean_g,?x_mean_b);

% medfilt2函数用于图像中值滤波
x_med_r?=?medfilter(xr,?f);
x_med_g?=?medfilter(xg,?f);
x_med_b?=?medfilter(xb,?f);
x_med?=?cat(3,?x_med_r,?x_med_g,?x_med_b);

psnr_mean?=?PSNR_color(x_mean,?X);
psnr_med?=?PSNR_color(x_med,?X);

subplot(3,4,10);imshow(x_mean);?title(['均值滤波,信噪比=',num2str(psnr_mean)]);
subplot(3,4,11);?imshow(x_med); ?title(['中值滤波,信噪比=',num2str(psnr_med)]);
% =========================================================================

3 仿真结果

4 参考文献

[1]林东升. 基于Matlab的小波阈值图像去噪方法研究[J]. 电脑知识与技术, 2013(4X):3.

?

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-11-23 12:20:39  更:2021-11-23 12:21:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 4:20:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码