基于Matlab的双边滤波去噪:图像的美颜魔法

基于Matlab的双边滤波去噪

在图像处理领域,噪声就像是不速之客,破坏了图像原本的清晰与美感。双边滤波作为一种强大的去噪技术,如同图像的“美颜滤镜”,能在有效去除噪声的同时,最大程度保留图像的边缘细节。今天咱就来唠唠基于Matlab实现双边滤波去噪。

双边滤波原理速览

双边滤波综合考虑了空间距离和像素值差异的权重。简单说,对于目标像素,不仅会考虑它周围像素在空间位置上离它有多近(空间邻近度),还会看这些像素的灰度值和它有多相似(灰度相似性)。这就好比选朋友,既要住得近,性格脾气还得合得来。

数学公式表达如下:

基于Matlab的双边滤波去噪

\[ g(i,j) = \frac{1}{W{ij}} \sum{m,n} f(m,n) \cdot e^{-\frac{(i - m)^2+(j - n)^2}{2\sigmad^2}} \cdot e^{-\frac{(f(i,j)-f(m,n))^2}{2\sigmar^2}} \]

其中 \( g(i,j) \) 是滤波后输出像素值,\( f(m,n) \) 是输入图像像素值,\( W{ij} \) 是归一化系数,\( \sigmad \) 是空间域标准差,\( \sigma_r \) 是值域标准差 。

Matlab实现双边滤波

Matlab提供了便捷的函数imgaussfilt2来实现双边滤波,不过咱自己动手实现一下,能更好理解其中门道。

function filtered_img = bilateral_filter_manual(input_img, d, sigma_d, sigma_r) % 获取图像尺寸 [height, width] = size(input_img); % 初始化滤波后的图像 filtered_img = zeros(height, width); % 计算高斯核半径 r = floor(d / 2); for i = 1:height for j = 1:width % 初始化权重和加权像素值总和 weight_sum = 0; intensity_sum = 0; for m = max(1, i - r):min(height, i + r) for n = max(1, j - r):min(width, j + r) % 空间距离权重 spatial_weight = exp(-((i - m)^2 + (j - n)^2) / (2 * sigma_d^2)); % 灰度值差异权重 range_weight = exp(-(input_img(i, j) - input_img(m, n))^2 / (2 * sigma_r^2)); % 总权重 weight = spatial_weight * range_weight; % 累加加权像素值和权重 intensity_sum = intensity_sum + input_img(m, n) * weight; weight_sum = weight_sum + weight; end end % 计算滤波后的像素值 filtered_img(i, j) = intensity_sum / weight_sum; end end end

代码分析

  1. 尺寸获取与初始化
[height, width] = size(input_img); filtered_img = zeros(height, width);

这部分获取输入图像的高度和宽度,并初始化一个与输入图像大小相同的全零矩阵filtered_img,用于存储滤波后的图像。

  1. 高斯核半径计算
r = floor(d / 2);

d代表邻域直径,通过floor(d / 2)计算出高斯核的半径r,用于确定参与滤波的邻域范围。

  1. 双重循环遍历像素
for i = 1:height for j = 1:width

这两层循环遍历输入图像的每一个像素,对每个像素进行双边滤波操作。

  1. 权重计算与累加
for m = max(1, i - r):min(height, i + r) for n = max(1, j - r):min(width, j + r) spatial_weight = exp(-((i - m)^2 + (j - n)^2) / (2 * sigma_d^2)); range_weight = exp(-(input_img(i, j) - input_img(m, n))^2 / (2 * sigma_r^2)); weight = spatial_weight * range_weight; intensity_sum = intensity_sum + input_img(m, n) * weight; weight_sum = weight_sum + weight; end end

这里面又嵌套了两层循环,遍历以当前像素(i,j)为中心的邻域像素(m,n)。分别计算空间距离权重spatialweight和灰度值差异权重rangeweight,两者相乘得到总权重weight。然后将邻域像素值乘以权重累加到intensitysum,权重累加到weightsum

  1. 滤波后像素值计算
filtered_img(i, j) = intensity_sum / weight_sum;

最后用累加的加权像素值总和intensitysum除以权重总和weightsum,得到滤波后当前像素(i,j)的值,存入filtered_img中。

使用示例

% 读取图像 original_img = imread('lena.png'); % 将图像转换为灰度图 gray_img = rgb2gray(original_img); % 添加高斯噪声 noisy_img = imnoise(gray_img, 'gaussian', 0, 0.01); % 设置双边滤波参数 d = 5; % 邻域直径 sigma_d = 1.5; % 空间域标准差 sigma_r = 0.1; % 值域标准差 % 调用手动实现的双边滤波 filtered_img_manual = bilateral_filter_manual(noisy_img, d, sigma_d, sigma_r); % 显示图像 subplot(1,3,1); imshow(noisy_img); title('含噪声图像'); subplot(1,3,2); imshow(filtered_img_manual); title('手动双边滤波后图像'); subplot(1,3,3); imshow(original_img); title('原始图像');

这段代码读取一张图像,将其转为灰度图后添加高斯噪声,然后调用手动实现的双边滤波函数对噪声图像进行处理,最后展示含噪声图像、滤波后图像以及原始图像。

双边滤波在图像去噪方面表现出色,无论是处理自然图像还是医学影像等专业领域图像,都能发挥重要作用。希望通过自己动手实现双边滤波,大家能对这个强大的图像处理技术有更深入的理解和掌握。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1220624.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据安全与合规:大数据治理的关键挑战与解决方案

数据安全与合规:大数据治理的关键挑战与解决方案 关键词:数据安全、合规性、大数据治理、隐私保护、数据泄露、监管法规、解决方案 摘要:在数字化时代,数据已成为企业的“数字石油”,但数据泄露、滥用等问题也频发。本文从“数据安全”与“合规”两大核心出发,结合生活案…

质量管理体系是什么,包括哪些内容?

谢邀。 质量管理体系是什么,包括哪些内容?很多老板一听质量管理体系,脑子里浮现的一般都是:“哦,就是那堆 ISO 文件和流程图吧?”实际上,企业真正头疼的并不是有没有文件,而是日常生…

Flutter for OpenHarmony 实战:贪吃蛇蛇的移动逻辑详解

Flutter for OpenHarmony 实战:贪吃蛇蛇的移动逻辑详解 文章目录 Flutter for OpenHarmony 实战:贪吃蛇蛇的移动逻辑详解一、前言二、坐标系统设计2.1 30x20网格坐标系2.2 坐标与像素映射2.3 Point类实现 三、Timer定时器实现自动移动3.1 Timer.periodic…

完整教程:Node.js 编程实战:自定义模块与包发布全流程解析

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

强烈安利!8个AI论文网站测评:本科生毕业论文全攻略

强烈安利!8个AI论文网站测评:本科生毕业论文全攻略 2026年AI论文写作工具测评:为何你需要这份指南? 随着人工智能技术的不断发展,越来越多的本科生开始借助AI工具辅助完成毕业论文的撰写。然而,面对市场上…

微信小程序开发一般多少钱?10年程序员给你讲透

我是专注小程序生态解决方案的技术,过去10年服务过近200家企业。每天被问最多的问题就是:“开发一个小程序到底要花多少钱?” 这就像问“装修一套房子多少钱”一样,答案差距很大,今天我就用真实行业经验帮你彻底搞…

Flutter for OpenHarmony 实战:贪吃蛇游戏核心架构设计

Flutter for OpenHarmony 实战:贪吃蛇游戏核心架构设计 文章目录Flutter for OpenHarmony 实战:贪吃蛇游戏核心架构设计一、前言二、贪吃蛇游戏功能拆解2.1 核心游戏机制2.2 技术实现要点三、核心数据结构设计3.1 Direction方向枚举3.2 Point坐标类设计3…

P10137 [USACO24JAN] Walking in Manhattan G

大概想到了。 考虑行走过程,从某个点向右上方行走,将这个点先固定到遇到的第一个交点,那么我们现在的问题就仅针对于这 \(n^2\) 个交点了。 考察一个很关键的事情是,假设一条直线上有 \(k\) 个交点,这 \(k\) 个交…

基于S7-300 PLC和组态王的恒压供水系统搭建与实现

基于S7-300 PLC和组态王组态控制的恒压供水系统在工业自动化领域,恒压供水系统是保障稳定供水的关键环节。今天咱们就唠唠基于S7-300 PLC和组态王组态控制的恒压供水系统。 1. 系统整体架构 恒压供水系统主要目的是保证供水压力稳定,不管用水情况如何变化…

基于Tent映射的混合灰狼优化改进算法:Matlab代码复现与解析

一种基于Tent映射的混合灰狼优化的改进算法(Matlab,代码复现,效果与原文一致,数值为运行30次数据) 1.tent映射 2.非线性控制参数策略(有代码,可以出图) 3.pso思想 在优化算法的领域里,不断的创新与改进是推动问题高效…

自适应巡航 Carsim + Simulink 联合仿真:两车固定间距的奇妙之旅

自适应巡航Carsimsimulink联合仿真,两车仿真 不支持三车 固定间距,carsim纯电车,PID控制。 ACC固定间距策略。在自动驾驶领域,自适应巡航(ACC)是一项非常关键的技术。今天咱们就来聊聊基于 Carsim 和 Simul…

无人驾驶车辆高速MPC例子复现:从理论到实践

无人驾驶车辆第七章高速mpc的例子复现,包含caraim文件,simulink文件和m文件,不包含指导,目前成功退换为双移线 版本是18matlab 19carsim最近在搞无人驾驶车辆相关项目,第七章高速MPC的例子复现真是个有趣又有挑战的活儿…

基于TensorRT、YOLOv5和QT构建智能监控平台

tensorrt yolov5 QT 智能监控平台。 yolov5使用 tensorrt推理封装成dll,支持多线程多任务,可同时并行加载不同模型,同时检测。 Qt开发的监控平台,支持不同平台部署,视频监控,录像回放,电子地图&…

麻雀算法优化 XGBoost 实现拟合预测建模

麻雀算法SSA-XGboost,数据输入为多维输入单维输出的数据格式,直接替换就可以做拟合预测建模,程序内注释详细 在机器学习的领域中,我们常常需要寻找更优的模型来提升预测的准确性。今天就来聊聊如何使用麻雀算法(SSA&a…

基于哈里斯鹰算法HHO-SEIR的传染病模型参数优化附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 🍎 往期回顾关注个人主页:Matlab科研工作室 👇 关注我领取海量matlab电子书和数学建模资料 &#…

【软考每日一练020】深入解析事务(Transaction)与ACID特性的工程实现

【软考每日一练020】深入解析事务(Transaction)与ACID特性的工程实现 在数据库系统的设计与应用中,事务(Transaction) 是确保数据完整性的基石。本文将从一道经典试题出发,通过业务场景实例化与底层机制分析…

AI应用架构师的人机协作新范式流程设计最佳实践的技术支撑

AI应用架构师的人机协作新范式:流程设计与技术支撑的最佳实践 一、引言:为什么你的AI项目总在“人机拔河”? 1.1 一个扎心的钩子:你可能在“用AI”,但没“设计人机协作” 上周和一位金融科技公司的AI架构师聊天,他吐槽:“我们花了半年做的智能风控系统,上线后反而更…

方波高频注入技术及其在代码实现中的应用

方波高频注入,,,,代码实现。 最近在调无感FOC的时候发现零速工况下观测器容易丢人,传统的滑模观测器在低速时估计精度跳水严重。这时候突然想起来高频注入法这招——特别是方波注入方案,硬件开销小还不挑电…

导师推荐!专科生必看9款AI论文软件测评,开题报告神器TOP9

导师推荐!专科生必看9款AI论文软件测评,开题报告神器TOP9 2026年专科生论文写作工具测评:选对工具,效率翻倍 随着AI技术在学术领域的不断渗透,越来越多的专科生开始依赖AI论文软件提升写作效率。然而,面对…

APP 外包开发公司怎么选?2026 年优质软件开发服务商分析与测评

市场上关于“APP 外包公司哪家好”的内容并不少,但其中相当一部分停留在表层信息罗列或营销导向的对比,难以支撑理性决策。本文尝试从企业视角出发,结合行业常见合作模式与公开资料,对不同类型 APP 开发服务商进行…