【图像去噪】基于小波变换实现图像去噪分析含Matlab源码
1 简介
在图像处理过程中,图像噪声对图像的后续处理和清晰度影响较大.因此,对图像的降噪至关重要.随着小波变换的不断优化,小波变换广泛应用在图像降噪方面.该文基于软阈值的小波图像增强方法,通过实验论述小波变换在图像去噪中的应用.
2 部分代码
function varargout = wavelet(varargin)
% WAVELET MATLAB code for wavelet.fig
% WAVELET, by itself, creates a new WAVELET or raises the existing
% singleton*.
%
% H = WAVELET returns the handle to a new WAVELET or the handle to
% the existing singleton*.
%
% WAVELET('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in WAVELET.M with the given input arguments.
%
% WAVELET('Property','Value',...) creates a new WAVELET or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before wavelet_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to wavelet_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
% instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help wavelet
% Last Modified by GUIDE v2.5 10-Jan-2021 05:42:48
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @wavelet_OpeningFcn, ...
'gui_OutputFcn', @wavelet_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
% --- Executes just before wavelet is made visible.
function wavelet_OpeningFcn(hObject, eventdata, handles, varargin)
%**********************************************************************%
% 五、重构
%**********************************************************************%
CA_Temp = RanksInterpolation(newCA,'r',2);
CH_Temp = RanksInterpolation(newCH,'r',2);
CloumnTemp1 = RanksConv(CA_Temp,Lo_R,'c')+RanksConv(CH_Temp,Hi_R,'c');
CV_Temp = RanksInterpolation(newCV,'r',2);
CD_Temp = RanksInterpolation(newCD,'r',2);
CloumnTemp2 = RanksConv(CV_Temp,Lo_R,'c')+RanksConv(CD_Temp,Hi_R,'c');
CloumnTempA = RanksInterpolation(CloumnTemp1,'c',2);
CloumnTempB = RanksInterpolation(CloumnTemp2,'c',2);
RowTemp = RanksConv(CloumnTempA,Lo_R,'r')+RanksConv(CloumnTempB,Hi_R,'r');
Image_R =wkeep(RowTemp,size(HANDDLE_IMAGE),'c'); %提取向量和矩阵的部分
axes(handles.axes_worked);
image (Image_R)
setappdata(handles.figure_wavelet,'Image_R',Image_R);
%HANDDLE_IMAGE = img_src; %为避免后续程序中误用X故用自定义变量替代
%image(HANDDLE_IMAGE);
% imshow(X); %用imread读入图片,并用imshow在axes_src上显示
% WAVELET_NAME = 'sym8';
%[Lo_D,Hi_D,Lo_R,Hi_R]=wfilters(WAVELET_NAME);
%RowLo_DTemp = RanksSampling(RanksConv(HANDDLE_IMAGE,Lo_D,'r'),'c',2);
%CA = RanksSampling(RanksConv(RowLo_DTemp,Lo_D,'c'),'r',2);
%subplot(221);image(CA);colormap(map);title('Lo_D低通分解后的图像CA')%画出CA的图像
% --- Executes on selection change in popupmenu1.
function popupmenu1_Callback(hObject, eventdata, handles)
% hObject handle to popupmenu1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: contents = cellstr(get(hObject,'String')) returns popupmenu1 contents as cell array
% contents{get(hObject,'Value')} returns selected item from popupmenu1
% --- Executes on selection change in wavelet_style.
function wavelet_style_Callback(hObject, eventdata, handles)
% hObject handle to wavelet_style (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: contents = cellstr(get(hObject,'String')) returns wavelet_style contents as cell array
% contents{get(hObject,'Value')} returns selected item from wavelet_style
WAVELET_NAME = 'haar';
val = get(handles.wavelet_style,'Value'); %获取下拉框的值
switch val %选择小波
case 1
WAVELET_NAME = 'haar'
case 2
WAVELET_NAME = 'db2';
case 3
WAVELET_NAME = 'db4';
case 4
WAVELET_NAME = 'db6';
case 5
WAVELET_NAME = 'db8';
case 6
WAVELET_NAME = 'db10';
case 7
WAVELET_NAME = 'sym2';
case 8
WAVELET_NAME = 'sym4';
case 9
WAVELET_NAME = 'sym6';
case 10
WAVELET_NAME = 'sym8';
case 11
WAVELET_NAME = 'sym10';
case 12
WAVELET_NAME = 'coif1';
case 13
WAVELET_NAME = 'coif3';
case 14
WAVELET_NAME = 'coif5';
case 15
WAVELET_NAME = 'dmey'
case 16
WAVELET_NAME = 'haar'
end
setappdata(handles.figure_wavelet,'WAVELET_NAME',WAVELET_NAME);
% --- Executes during object creation, after setting all properties.
function wavelet_style_CreateFcn(hObject, eventdata, handles)
% hObject handle to wavelet_style (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: popupmenu controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% --- Executes on selection change in filter_style.
function filter_style_Callback(hObject, eventdata, handles)
% hObject handle to filter_style (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: contents = cellstr(get(hObject,'String')) returns filter_style contents as cell array
% contents{get(hObject,'Value')} returns selected item from filter_style
Filter_style = get(handles.filter_style,'Value');
setappdata(handles.figure_wavelet,'Filter_style',Filter_style);
% --- Executes during object creation, after setting all properties.
function filter_style_CreateFcn(hObject, eventdata, handles)
% hObject handle to filter_style (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: popupmenu controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% --------------------------------------------------------------------
function m_thanks_Callback(hObject, eventdata, handles)
% hObject handle to m_thanks (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
h = thanks;
% --------------------------------------------------------------------
function m_about_Callback(hObject, eventdata, handles)
% hObject handle to m_about (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
h = about;
% --------------------------------------------------------------------
function m_file_Callback(hObject, eventdata, handles)
% hObject handle to m_file (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% --------------------------------------------------------------------
function m_file_open_Callback(hObject, eventdata, handles)
% hObject handle to m_file_open (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% --------------------------------------------------------------------
[filename, pathname] = uigetfile( ...
{'*.bmp;*,jpg;*.png;*.jpeg;*.tif','Image File(*.bmp,*.jpg,*.png,*jpeg,*.tif)';...
'*.*', 'All File(*.*)'},...
'Pick an image');
axes(handles.axes_original); %用axes命令设定当前操作的坐标轴是axes_src
fpath = [pathname filename]; %将文件名和目录名组合成一个完整的路径
img_src = imread(fpath);
imshow(img_src); %用imread读入图片,并用imshow在axes_src上显示
setappdata(handles.figure_wavelet,'img_src',img_src);
% --------------------------------------------------------------------
function m_file_save_Callback(hObject, eventdata, handles)
% hObject handle to m_file_save (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
[filename,pathname]=uiputfile({'*.bmp','BMP files';'*.jpg;','JPG files'},'Pick an Image');
if isequal(filename,0) || isequal(pathname,0)
return; %如果点了“取消”
else
fpath = fullfile(pathname,filename);
end
Image_R = getappdata(handles.figure_wavelet,'Image_R');
imwrite(Image_R,fpath);
% --------------------------------------------------------------------
function m_file_exit_Callback(hObject, eventdata, handles)
% hObject handle to m_file_exit (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
close;
3 仿真结果
4 参考文献
[1]张俊, & 朱凯荣. (2011). 基于matlab软件的小波变换在图像去噪中的应用. 电脑知识与技术(9X), 1.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
【图像去噪】基于小波变换实现图像去噪分析含Matlab源码相关推荐
- 【信号处理】语音信号线性预测(LPC)分析含Matlab源码
1 简介 线性预测技术作为一种基于全极点模型假定和均方预测误差最小准则下的波形逼近技术.本文简要介绍了LPC技术的基本原理,并利用MATLAB这一有力工具对语音信号进行了LPC分析,并对阶数的选取做了 ...
- 【水果识别】基于计算机视觉实现水果识别含Matlab源码
1 简介 自"农业 4.0"时代的来临,以"互联网+"为驱动的农业技术已成为发展农业强有力的支撑.在果蔬业中,果蔬分类通常由经过训练的人员人工评估农产品或农作物 ...
- 【语音处理】音频信号提取分析含Matlab源码
1 简介 MATLAB是十分强大的用于数据分析和处理的工程实用软件,利用其来进行语音信号的分析,处理和可视化十分便捷.文中介绍了在 MATLAB环境中如何驱动声卡采集语音信号和语音信号采集后的文档处理 ...
- 【控制】基于气动力的导弹姿态控制含Matlab源码附报告
1 简介 对于大气层内飞行的导弹,为了使其准确的完成飞行,首要任务是使其姿态保持稳定.导弹的姿态控制系统是导弹飞行成败的关键系统之一,姿态控制过程和方法一直备受关注,它在导弹设计.使用.储存的整个生命 ...
- 【图像分割】基于FLICM算法实现图像分割含Matlab源码
1 简介 聚类就是把具有相似性的事物区分开并加以分类.聚类分析是依据研究对象(样品 或指标)的特征,对其进行分类.其目标是:组内对象之间是相似的或是相关的,而不同组中的对象不相同或者是不相关的,聚类过 ...
- 【水果识别】基于形态学实现水果识别含Matlab源码
1 简介 数学形态学操作可以分为二值形态学和灰度形态学,灰度形态学由二值形态学扩展而来.数学形态学有2个基本的运算,即腐蚀和膨胀,而腐蚀和膨胀通过结合又形成了开运算和闭运算. 开运算就是先腐蚀再膨胀, ...
- 【语音分析】语音信号分析含Matlab源码
1 简介 语音信号处理技术是语音处理领域中新近发展起来的一个学科分支,MATLAB是一个数据分析和处理功能十分强大的工程实用软件,运用它来进行语音信号的采集,分析和处理相当便捷.文章介绍了在Matla ...
- 【目标跟踪】基于UKF实现自行车状态估计含Matlab源码
1 简介 UKF 算法是广泛应用的非线性滤波方法之一, 在加性噪声条件下, 根据是否状态扩展和是否重采样有四种实现方式. 从算法精度.适应性和计算效率等方面进行了理论分析和仿真计算, 证明适当选择滤波 ...
- 【图像处理】基于分形插值算法实现换脸含Matlab源码
1 简介 2 部分代码 function result = skin(Y,Cb,Cr)a = 25.39;b = 14.15;ecx = 1.72;ecy = 2.43;sita = 2.64;cx ...
最新文章
- 牛顿:伸向未知量的利爪
- 哪种营销方法效果最差_网络营销推广中如何监控评测网络效果?
- jQuery中终止Ajax请求
- 三值的排序 Sorting a Three-Valued Sequence
- 化工热力学 第二章(流体的 p - V - T 关系)
- scala与java的区别_Scala学习笔记及与Java不同之处总结
- 淘宝Tprofiler工具实现分析
- vue自学入门-1(Windows下搭建vue环境)
- Hadoop1.x HDFS系统架构
- Linux入门之常用命令(10)软连接 硬链接
- 手机定位折腾记(1):安卓手机的网络定位与NetworkLocation.apk
- html 长度太长截断,HTML CSS 表格换行禁止 超出指定长度自动截断
- 2010计算机系助学金,计算机系贫困生助学金申请书
- c++运行时报Floating point exception错误
- 避免使用隐式类型转换
- 前端面试经历和感想(2019年7月)
- 每天有2800万人在看片
- Luckysheet的使用
- java之简易的文件加密器的实现
- 锂电池正极材料离心母液回收镍钴技术
热门文章
- 接口测试学习必看 - 实现简易接口测试
- 用<C#> 随机一个1~100之间的数字 。猜测随机的数字
- idea 使用svn将主分支修改的代码更新到子分支
- 软件测试职业发展规划,带你摆脱年龄的困扰!不能不看
- 2020我的秋招总结帖 [数据分析岗] | 面经集合
- 超级实用的js代码大全(上)
- SpringSecurity - 整合JWT使用 Token 认证授权
- 【c++】std::move 所有权转移的使用
- 关于windows10系统下没有选择双系统的界面直接进入windows10的解答
- 数据结构树、二叉树、完全二叉树、二叉查找树、平衡二叉树、红黑树、B+树