快速双边滤波源码「建议收藏」
发布时间 - 2025-07-14 00:00:00 点击率:次大家好,又见面了,我是你们的朋友全栈君。
% 使用升余弦的快速双边滤波
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % inImg : 灰度图像 % sigma1 : 空间高斯核的宽度 % sigma2 : 范围高斯核的宽度 % [-w, w]^2 : 空间高斯核的领域 % tol : 截断误差 % % 作者: Kunal N. Chaudhury. % 日期: 2012年3月1日. % 修改: 2014年6月21日. % % 参考文献: % [1] K.N. Chaudhury, D. Sage, 和 M. Unser, “使用三角范围核的快速O(1)双边过滤,” IEEE Trans. Image Proc., % 卷. 20, 号. 11, 2011. % % [2] K.N. Chaudhury, “加速可移动的O(1)算法用于双边过滤和非局部均值,” IEEE Transactions on Image Proc., % 卷. 22, 号. 4, 2013. % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 加载测试图像 clc, clear all, close all force; Img = double( imread(‘./images/ckb.jpg’) ); [m, n] = size(Img);
% 创建带噪声图像
(加性高斯噪声) sigma = 20; inImg = Img + sigma * randn(m, n);
% 过滤参数 sigma1 = 4; sigma2 = 30; tol = 0.01;
% 设置空间高斯核的窗口 w = 6*sigma1; if (mod(w,2) == 0) w = w+1; end
% 调用双边滤波器 tic; [outImg, param] = shiftableBF(inImg, sigma1, sigma2, w, tol); toc;
% 绘制结果 T = param.T; N = param.N; M = param.M; gamma = 1 / (sqrt(N) * sigma2); twoN = 2^N;
warning(‘off’); %#ok
s = linspace(-T, T, 200); g = exp( -s.^2 / (2 sigma2 sigma2) ); gApprox = cos(gamma s).^N; if M == 0 gTrunc = gApprox; else gTrunc = zeros( 1, length(s) ); for k = M : N - M gTrunc = gTrunc + (nchoosek(N, k) / twoN) … cos( (2k - N) gamma * s ); end end
figure(‘Units’,’normalized’,’Position’,[0 0.5 1 0.5]); plot(s, g, ‘b’); hold on, plot(s, gApprox, ‘m’), hold on, plot(s, gTrunc, ‘r’); axis(‘tight’), grid(‘on’), legend(‘高斯’,’升余弦’,’截断升余弦’,’FontSize’, 10); title(‘范围核的比较’, ‘FontSize’, 10),
peak = 255; PSNR0 = 10 log10(m n peak^2 / sum(sum( (inImg - Img).^2)) ); PSNR1 = 10 log10(m n peak^2 / sum(sum((outImg - Img).^2)) );
figure(‘Units’,’normalized’,’Position’,[0 0.5 1 0.5]); colormap gray, subplot(1,3,1), imshow(uint8(Img)), title(‘原始’, ‘FontSize’, 10), axis(‘image’, ‘off’); subplot(1,3,2), imshow(uint8(inImg)), title([ ‘带噪声, ‘, num2str(PSNR0, ‘%.2f’), ‘dB’] , ‘FontSize’, 10), axis(‘image’, ‘off’); subplot(1,3,3), imshow(uint8(outImg)), title([ ‘滤波后, ‘, num2str(PSNR1, ‘%.2f’), ‘dB’] , ‘FontSize’, 10), axis(‘image’, ‘off’);
发布者:全栈程序员栈长,转载请注明出处:https://www./link/8684ff2b6457df6145f160954e1ff7a7
# cos
# html
# if
# for
# double
# 栈
# Length
# position
# 算法
# https
# 高斯
# 我是
# 你们的
# 大家好
# 转载请注明
# 又见
# 均值
# 加载
# 性高
# images
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试
如何打造高效商业网站?建站目的决定转化率
车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?
Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】
智能起名网站制作软件有哪些,制作logo的软件?
Python文本处理实践_日志清洗解析【指导】
Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面
佛山企业网站制作公司有哪些,沟通100网上服务官网?
HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】
如何快速选择适合个人网站的云服务器配置?
Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制
Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录
Laravel如何使用Collections进行数据处理?(实用方法示例)
Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理
如何快速使用云服务器搭建个人网站?
用yum安装MySQLdb模块的步骤方法
Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复
如何快速建站并高效导出源代码?
Java遍历集合的三种方式
如何选择可靠的免备案建站服务器?
EditPlus中的正则表达式 实战(1)
如何获取上海专业网站定制建站电话?
Laravel怎么定时执行任务_Laravel任务调度器Schedule配置与Cron设置【教程】
如何用PHP快速搭建CMS系统?
如何解决hover在ie6中的兼容性问题
Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门
javascript基于原型链的继承及call和apply函数用法分析
Laravel中DTO是什么概念_在Laravel项目中使用数据传输对象(DTO)
JavaScript中的标签模板是什么_它如何扩展字符串功能
Android 常见的图片加载框架详细介绍
如何在不使用负向后查找的情况下匹配特定条件前的换行符
如何挑选优质建站一级代理提升网站排名?
HTML透明颜色代码在Angular里怎么设置_Angular透明颜色使用指南【详解】
香港服务器网站生成指南:免费资源整合与高速稳定配置方案
Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】
Laravel怎么为数据库表字段添加索引以优化查询
昵图网官方站入口 昵图网素材图库官网入口
IOS倒计时设置UIButton标题title的抖动问题
怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?
如何在IIS中配置站点IP、端口及主机头?
儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?
Laravel怎么实现模型属性的自动加密
如何续费美橙建站之星域名及服务?
HTML 中如何正确使用模板变量为元素的 name 属性赋值
Laravel Blade模板引擎语法_Laravel Blade布局继承用法
标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?
Laravel怎么集成Vue.js_Laravel Mix配置Vue开发环境
利用python获取某年中每个月的第一天和最后一天
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
深入理解Android中的xmlns:tools属性
下一篇:C语言中隐藏结构体的细节
下一篇:C语言中隐藏结构体的细节

