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. Deployment详解
  2. request用法_Go 语言 Web 应用开发 第 04 课:高级模板用法
  3. 使用@host获得宿主元素注入器里注入的内容
  4. 移植.NET Core计划,整合各平台变得更简单了!
  5. Thinkphp 发送邮件
  6. html前台检验特殊字符正则,【Qt编程】html特殊字符及正则表达式
  7. 汽车之家:基于 Flink + Iceberg 的湖仓一体架构实践
  8. python 自动上报json信息_python接口自动化5-Json数据处理
  9. 需求、需求工程与需求工程师 — 1.定义、作用
  10. java 返回js,Javascript返回上一页
  11. Spring Boot Test 进行JPA 测试保存数据到数据库
  12. 【转】JMeter脚本的参数化
  13. NGUI学习笔记汇总
  14. 1991-2020中国科技统计年鉴(EXCEL版)
  15. 电脑常用快捷键大全(收藏)
  16. Intent中putExtra()方法用法
  17. rampUp时间 jmeter
  18. solidworks批量转存宏程序开发【可下载】
  19. 【重磅】云栖社区2017年度内容特辑
  20. 基于卷积神经网络的手势识别研究论文

热门文章

  1. php nl2br() 函数
  2. java对象的生命周期及回收
  3. GridView RowCommand 获取列值
  4. 昨天服务器出现问题,解决过程如下所述
  5. Python 类的定义、继承及使用对象
  6. UA OPTI570 量子力学18 量子谐振子基础
  7. DOS 批处理命令学习1
  8. C++ code:main参数
  9. springboot+jps+druid项目搭建
  10. 微信公众号平台开发-网页授权