1.软件版本

MATLAB2021a
2.本算法理论知识

提出了一种”基于小波变换的多尺度自适应双边滤波器“算法。

其对应的算法流程如下所示:

下面,我们从理论上限介绍一下这里所采用的改进后的算法。

第一:多尺度图像的自适应双边滤波

这个部分,是我们这里所需要研究的创新的算法,这里重点从理论上介绍一下。

首先通过图像亮度,将图像区分为前景图和背景图。

这里,我们主要通过二值话处理,进行图像的前景和背景的区分,这个部分的理论为:

这里,门限T的计算,我们主要通过matlab自带的一个函数获得,这个函数会根据每个图像自动计算出门限T。

graythresh

对于的代码为:

然后分别对前景和背景进行sigma参数的自适应调整。

这里,sigma的计算公式为:

这里,我们根据上面的背景前景,做如下的设置。

这里,我们分别对前景和背景下乘以系数K1和K2,其中根据亮度分布(亮的为背景、暗的为物体)来确定BF的各像素的两个sigma值,让亮区域平滑更多(选用大sigma),暗区域平滑偏小(小sigma)。

3.核心代码


% Pre-process input and select appropriate filter.
function B = bfilter2(A,w,sigma)% Verify that the input image exists and is valid.
if ~exist('A','var') || isempty(A)error('Input image A is undefined or invalid.');
end
if ~isfloat(A) || ~sum([1,3] == size(A,3)) || ...min(A(:)) < 0 || max(A(:)) > 1error(['Input image A must be a double precision ',...'matrix of size NxMx1 or NxMx3 on the closed ',...'interval [0,1].']);
end% Verify bilateral filter window size.
if ~exist('w','var') || isempty(w) || ...numel(w) ~= 1 || w < 1w = 5;
end
w = ceil(w);% Verify bilateral filter standard deviations.
if ~exist('sigma','var') || isempty(sigma) || ...numel(sigma) ~= 2 || sigma(1) <= 0 || sigma(2) <= 0sigma = [3 0.1];
end% Apply either grayscale or color bilateral filtering.
if size(A,3) == 1B = bfltGray(A,w,sigma(1),sigma(2));
elseB = bfltColor(A,w,sigma(1),sigma(2));
end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Implements bilateral filtering for grayscale images.
function B = bfltGray(A,w,sigma_d,sigma_r)% Pre-compute Gaussian distance weights.
[X,Y] = meshgrid(-w:w,-w:w);
G = exp(-(X.^2+Y.^2)/(2*sigma_d^2));% Create waitbar.
h = waitbar(0,'Applying bilateral filter...');
set(h,'Name','Bilateral Filter Progress');% Apply bilateral filter.
dim = size(A);
B = zeros(dim);
for i = 1:dim(1)for j = 1:dim(2)% Extract local region.iMin = max(i-w,1);iMax = min(i+w,dim(1));jMin = max(j-w,1);jMax = min(j+w,dim(2));I = A(iMin:iMax,jMin:jMax);% Compute Gaussian intensity weights.H = exp(-(I-A(i,j)).^2/(2*sigma_r^2));% Calculate bilateral filter response.F = H.*G((iMin:iMax)-i+w+1,(jMin:jMax)-j+w+1);B(i,j) = sum(F(:).*I(:))/sum(F(:));endwaitbar(i/dim(1));
end% Close waitbar.
close(h);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Implements bilateral filter for color images.
function B = bfltColor(A,w,sigma_d,sigma_r)% Convert input sRGB image to CIELab color space.
if exist('applycform','file')A = applycform(A,makecform('srgb2lab'));
elseA = colorspace('Lab<-RGB',A);
end% Pre-compute Gaussian domain weights.
[X,Y] = meshgrid(-w:w,-w:w);
G = exp(-(X.^2+Y.^2)/(2*sigma_d^2));% Rescale range variance (using maximum luminance).
sigma_r = 100*sigma_r;% Create waitbar.
h = waitbar(0,'Applying bilateral filter...');
set(h,'Name','Bilateral Filter Progress');% Apply bilateral filter.
dim = size(A);
B = zeros(dim);
for i = 1:dim(1)for j = 1:dim(2)% Extract local region.iMin = max(i-w,1);iMax = min(i+w,dim(1));jMin = max(j-w,1);jMax = min(j+w,dim(2));I = A(iMin:iMax,jMin:jMax,:);% Compute Gaussian range weights.dL = I(:,:,1)-A(i,j,1);da = I(:,:,2)-A(i,j,2);db = I(:,:,3)-A(i,j,3);H = exp(-(dL.^2+da.^2+db.^2)/(2*sigma_r^2));% Calculate bilateral filter response.F = H.*G((iMin:iMax)-i+w+1,(jMin:jMax)-j+w+1);norm_F = sum(F(:));B(i,j,1) = sum(sum(F.*I(:,:,1)))/norm_F;B(i,j,2) = sum(sum(F.*I(:,:,2)))/norm_F;B(i,j,3) = sum(sum(F.*I(:,:,3)))/norm_F;endwaitbar(i/dim(1));
end% Convert filtered image back to sRGB color space.
if exist('applycform','file')B = applycform(B,makecform('lab2srgb'));
else  B = colorspace('RGB<-Lab',B);
end% Close waitbar.
close(h);

4.操作步骤与仿真结论

5.参考文献

A25-09
6.完整源码获得方式

方式1:微信或者QQ联系博主

方式2:订阅MATLAB/FPGA教程,免费获得教程案例以及任意2份完整源码

【双边滤波】基于小波变换的多尺度自适应THZ增强双边滤波器的MATLAB仿真相关推荐

  1. 自适应增量调制adm的实现与matlab仿真,自适应增量调制ADM的实现与Matlab仿真

    <自适应增量调制ADM的实现与Matlab仿真>由会员分享,可在线阅读,更多相关<自适应增量调制ADM的实现与Matlab仿真(4页珍藏版)>请在技术文库上搜索. 1.62 s ...

  2. 控制器matlab仿真研究,单神经元自适应PID控制器的研究及MATLAB仿真

    单神经元自适应PID控制器的研究及MATLAB仿真 在分析传统的PID控制器的基础上,提出了一种单神经元自适应PID控制器,这种控制器,不仅结构简单,且具有较好的适应 (本文共2页) 阅读全文> ...

  3. 有源电力滤波器APF MATLAB仿真 选阶补偿,matlab版本V2014,基于LCL滤波器的I型三电平拓扑仿真模型

    有源电力滤波器APF MATLAB仿真 选阶补偿,matlab版本V2014,基于LCL滤波器的I型三电平拓扑仿真模型,三相四线制,软件锁相环,C语言编程提取谐波指令,直流电压和中点电位控制稳定. I ...

  4. 基于小波变换的单幅彩色图像去雾增强

    注:本文成于2017年12月,是<小波变换与图像处理>的课程作业 摘要 雾天天气对户外场景图像会造成严重损害,表现为光照不均,色彩饱和度低,细节和对比度差,进而造成图像质量的退化,影响进一 ...

  5. 【IHS+稀疏表示】基于IHS小波变换和稀疏表示相结合的遥感图像融合算法matlab仿真

    1.软件版本 matlab2013b 2.本算法理论知识 小波变换具有多尺度特性,其时域和频域均 具有表征信号局部特性的能力和多分辨率分析的 特点.在低频时具有高的频谱分辨率,在高频 时具有低的频谱分 ...

  6. 基于GRNN广义回归神经网络的车牌字符分割和识别matlab仿真

    目录 一.理论基础 二.核心MATLAB程序 三.MATLAB仿真测试结果 一.理论基础 GRNN通常被用来进行函数逼近.它具有一个径向基隐含层和一个特殊的线性层.第一层和第二层的神经元数目都与输入的 ...

  7. 基于精英保留策略选择和轮盘赌选择的遗传优化matlab仿真

    目录 1.算法概述 2.仿真效果 3.MATLAB仿真源码 1.算法概述 首先要了解遗传算法的一些基本概念: 基因型(genotype):性状染色体的内部表现: 表现型(phenotype):染色体决 ...

  8. 【图像隐藏】基于小波变换DWT实现数字水印嵌入提取含各类攻击附matlab代码

    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信.

  9. 【信号处理】基于小波变换的时间重分配多重同步压缩变换TMSST附matlab代码

    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信.

最新文章

  1. 赛迪研究院发布《2018年中国自动驾驶产业发展及投资价值白皮书》!
  2. doctype的三种类型
  3. openstack管理员手册下载_城市绿心森林公园app下载-城市绿心森林公园客户端下载v1.1 安卓版...
  4. linux平台的office文档转pdf的实例(程序员的菜)
  5. Pytorch之CNN:基于Pytorch框架实现经典卷积神经网络的算法(LeNet、AlexNet、VGG、NIN、GoogleNet、ResNet)——从代码认知CNN经典架构
  6. 9中继器添加一列序号自增_三个动态自动更新EXCEL序号的小技巧,解决重复编号困扰...
  7. 知乎回答多线程爬虫案例
  8. shell编程--流程控制for,do-while,if-then,break,continue,case等
  9. 解决Mac下安装新版本IDEA无法启动
  10. 搜索引擎设计实用教程(4)-以百度为例
  11. getElementByClassName()不兼容的解决办法
  12. mysql之旅【第一篇】
  13. python doc转docx_利用python中的win32com模块将doc文件转为docx文件
  14. java中的缓冲流BufferedWriter和BufferedReader
  15. linux三剑客之sed命令,linux三剑客之sed命令
  16. 加载Oracle驱动代码,无法加载oracle in oradb10g_home2 odbc驱动程序的安装例程,因为存在系统错误代码998 解决方法 | 学步园...
  17. python3.10下载安装(附python学习教程)
  18. Tomcat安装及环境配置(详细教程)
  19. UltraEdit 编辑器授权许可暴力破解
  20. 旧电脑改造服务器或云电脑和外网访问家庭nas/软路由实战记录

热门文章

  1. [转载+原创]Emgu CV on C# (五) —— Emgu CV on 局部自适应阈值二值化
  2. 建立可扩展的silverlight应用框架
  3. Visual Studio 2005 Beta2 简体中文版发布
  4. UA MATH571A R语言回归分析实践 一元回归1 NBA球员的工资
  5. javascript闭包简单实例
  6. SSDT表与ShadowSSDT表
  7. 为什么浮点型运算结果会有误差?
  8. 微信消息类型和事件类型
  9. IDEA项目搭建七——使用Feign简化消费者端操作
  10. Tortoisegit和GitHub使用入门