✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。
🍎个人主页:海神之光
🏆代码获取方式:
海神之光Matlab王者学习之路—代码获取方式
⛳️座右铭:行百里者,半于九十。
更多Matlab仿真内容点击👇
Matlab图像处理(进阶版)
路径规划(Matlab)
神经网络预测与分类(Matlab)
优化求解(Matlab)
语音处理(Matlab)
信号处理(Matlab)
车间调度(Matlab)
⛄一、中值滤波图像去噪简介
图像信号在产生、传输和记录过程中,经常受到各种噪声的干扰,严重地影响图像的视觉效果,因此在进行进一步 的边缘检测、图像分割、特征提取、模式识别等处理之前,采用适当方法尽量减少噪声是一个非常重要的预处理步骤。 目前常使用的噪声滤波器,从整体上可分为线性和非线性滤波两种。在数字信号处理和数字图像处理的早期研究中,线性滤波器是主要处理手段‚它对加性高斯噪声有较好平滑作用。然而当信号中含有非叠加性噪声时‚线性滤波结果很难令人满意。许多实验表明,人类视觉系统是非线性的于是在1958年 Wiener 就提出了非线性滤波理论。特别是1983 年以后,这一领域发展得更加迅速,非线性与统计理论相结合,形成了一个新兴研究领域,在图像处理领域中,目前最常用的图像去噪工具是中值滤波。
1 中值滤波
中值滤波在一维形式下‚是一个奇数个像素的滑动窗 口。经排序后‚窗口序列为 {Fi-v…Fi-1‚Fi‚Fi+1…Fi+v}‚ 其中 V= (L-1) /2‚L 为窗口长度‚Fi 为窗口像素的中值 滤波输出。记作 Med × {·}‚Gi = Med {Fi-v …Fi-1‚Fi‚
Fi+1…Fi+v} 表示取窗口中值。如一窗口长度为5‚像素灰 度分别为 {20‚10‚30‚15‚25}‚Gi=Med {10‚15‚20‚ 25‚30}其灰度级为30的像素为随机脉冲噪声。在经过中 值滤波即被滤除。 一维中值滤波的概念很容易推广到二维。这时取某种形 式的二维窗口‚将窗口内像素排序,生成单调二维中值滤波器,比一维滤波更能抑制噪声。二维中值滤波的窗口形状可以有多种如线状方形、十字形、圆形、菱形等。不同形状的窗口产生不同的滤波效果。使用中要根据图像的内容和 不同的要求加以选择。从经验上看,方形和圆形窗口适宜外 廊线较长的物体图像。十字形窗口则优越于有尖顶物体的图像。因为一维滤波只考虑了图像垂直或水平方向的相关性。 滤波效果不是很明显,所以通常用3×3,5×5的二维中值 滤波。在要求对图像的平滑程度小的情况下,多采用3×3 中值滤波器。 中值滤波能有效抑制脉冲、椒盐噪声。而且一般对图像 边缘也有较好的保护作用。但它对图像中点线等细节模糊作 用也不可忽视:会使宽度小于 (N 为窗口长度) 的边界模糊或消失,随着窗口的增大,滤波作用越大。有效信号损失也 越大。标准中值滤波对所有像素采用统一的处理方法。这种 处理不仅改变了噪声的值,同时也改变了信号点的值‚在滤 波过程中噪声会在邻域内传播。为了克服标准中值滤波存在 的这些问题。最近几年出现了多种基于中值的改进算法‚比 如‚多窗口中值滤波‚加权中值滤波‚自适应中值滤波。
2 自适应加权算法
本文提出一种新的自适应加权方案。充分利用每个窗口元素本身存在的联系,首先对每个窗口元素进行排序‚取适当的坐标比例,进行曲线拟合,拟合后的曲线斜率表征了此 窗口的图像特征。斜率较大的说明窗口中各个元素灰度相差 较大‚可认为具有明显的图像边缘‚进行加权时‚可取排序 后窗口中的几个元素 (如3×3窗口‚取其中3个元素) 进 行加权。这时‚可适当减小中心元素的权重‚而增大两边元 素权重,这样才能保边界和保细节。同理‚斜率较小‚说明 此窗口灰度变化缓慢可直接进行中值滤波,可取一域值以简 化算法复杂性‚提高运算速度。 在加权时‚根据图像各部分特性自适应地选择权重进行加权,这时,方差是个很好的选用标准‚根据图像统计特 性‚按某一函数关系加权到各个元素。且两边元素的权重正 比于方差的大小‚方差大‚两边权重也适当增大。
文章算法如下:
可用可视化软件 matlab 实现
1 对窗口中的元素进行排序;
2 取适当坐标比例进行曲线拟合,并通过matlab函数;
求出拟合线的斜率值
3 当斜率值与其统计平均值差值在指定域值内‚转4‚ 否则转5
4 用窗口的中值代替中心点的值 ;
5 求出该窗口的方差;用关于方差的函数来对窗口序 列中的中间几个元素进行自适应加权。
6 结束本窗口滤波,移至下一窗口。
⛄二、部分源代码
function varargout = MAIN_GUI(varargin)
gui_Singleton = 1;
gui_State = struct(‘gui_Name’, mfilename, …
‘gui_Singleton’, gui_Singleton, …
‘gui_OpeningFcn’, @MAIN_GUI_OpeningFcn, …
‘gui_OutputFcn’, @MAIN_GUI_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
% — Executes just before MAIN_GUI is made visible.
function MAIN_GUI_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
guidata(hObject, handles);
% — Outputs from this function are returned to the command line.
function varargout = MAIN_GUI_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
% — Executes during object creation, after setting all properties.
function et_PSNR_1_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,‘BackgroundColor’), get(0,‘defaultUicontrolBackgroundColor’))
set(hObject,‘BackgroundColor’,‘white’);
end
function et_PSNR_2_Callback(hObject, eventdata, handles)
% — Executes during object creation, after setting all properties.
function et_PSNR_2_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,‘BackgroundColor’), get(0,‘defaultUicontrolBackgroundColor’))
set(hObject,‘BackgroundColor’,‘white’);
end
function et_PSNR_3_Callback(hObject, eventdata, handles)
% — Executes during object creation, after setting all properties.
function et_PSNR_3_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,‘BackgroundColor’), get(0,‘defaultUicontrolBackgroundColor’))
set(hObject,‘BackgroundColor’,‘white’);
end
% — Executes on button press in find_imgfile.
function find_imgfile_Callback(hObject, eventdata, handles) %读取图像按钮
[filename,filepath,filterindex] = uigetfile(…
{‘.jpg’,'JPEG-files(.jpg)’;…
‘.bmp;','BMP-files(.BMP)’;…
‘.tif;','TIF-files(.tif)’;…
‘.png;','PNG-files(.png)’;…
‘.gif;','GIF-files(.gif)’;…
‘.’,‘All-files(.)’;…
},‘Choose Image File’,‘MultiSelect’,‘on’);
if isequal(filename,0)%未选择
setappdata(0,‘img_name’,[]);
% set(handles.et_imfile,‘string’,‘No Selected File!’);
return;
end
if (isstr(filename))%单个图像
img_name = [filepath,filename];
% set(handles.et_imfile,‘string’,img_name);
set(handles.ax_original,‘visible’,‘on’);%设置显示 原图像
set(handles.txt_original,‘visible’,‘on’);%设置显示 “原图像”标题
I = imread(img_name);
[X,Y,Z]=size(I);
%返回图像各维的大小,如果是灰度图象对应的Z=1
if Z>1
img=rgb2gray(I);%将RGB的图转化为灰度图
else
img=I;
end
axes(handles.ax_original);
imshow(img);
else%多个图像
filename = sort(filename);
set(handles.ax_original,‘visible’,‘off’);
set(handles.txt_original,‘visible’,‘off’);
% set(handles.et_imfile,‘string’,‘Multi Image Files!’);
end
⛄三、运行结果
⛄四、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1]金春花,欧阳晶,王国槟.自适应加权中值滤波图像去噪算法[J].九江职业技术学院学报. 2005,(04)
3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除
🍅 仿真咨询
1 各类智能优化算法改进及应用
生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化
2 机器学习和深度学习方面
卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断
3 图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知
4 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化
5 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配
6 无线传感器定位及布局方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化
7 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化
8 电力系统方面
微电网优化、无功优化、配电网重构、储能配置
9 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长
10 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合