matlab练习程序(双边滤波)

2023-05-16

  双边滤波模板主要有两个模板生成,第一个是高斯模板,第二个是以灰度级的差值作为函数系数生成的模板。然后这两个模板点乘就得到了最终的双边滤波模板。

  第一个模板是全局模板,所以只需要生成一次。第二个模板需要对每个像素都计算一次,所以需要放到循环的里面来生成,这很像表面模糊啊。哦,表面模糊就是用了一个截尾滤波器。

  这里的公式我参考了这里,不过她给的第二个好像不是截尾均值滤波器,而是以灰度差值为自变量的高斯滤波器。截尾均值滤波器这里有一些理论和实现,

代码如下:


clear all;
close all;
clc;

img=imread('lena.jpg');
img=mat2gray(img);
[m n]=size(img);
imshow(img);

r=10;        %模板半径
imgn=zeros(m+2*r+1,n+2*r+1);
imgn(r+1:m+r,r+1:n+r)=img;
imgn(1:r,r+1:n+r)=img(1:r,1:n);                 %扩展上边界
imgn(1:m+r,n+r+1:n+2*r+1)=imgn(1:m+r,n:n+r);    %扩展右边界
imgn(m+r+1:m+2*r+1,r+1:n+2*r+1)=imgn(m:m+r,r+1:n+2*r+1);    %扩展下边界
imgn(1:m+2*r+1,1:r)=imgn(1:m+2*r+1,r+1:2*r);       %扩展左边界

sigma_d=2;
sigma_r=0.1;
[x,y] = meshgrid(-r:r,-r:r);
w1=exp(-(x.^2+y.^2)/(2*sigma_d^2));     %以距离作为自变量高斯滤波器

h=waitbar(0,'wait...');
for i=r+1:m+r
    for j=r+1:n+r        
        w2=exp(-(imgn(i-r:i+r,j-r:j+r)-imgn(i,j)).^2/(2*sigma_r^2)); %以周围和当前像素灰度差值作为自变量的高斯滤波器
        w=w1.*w2;
        
        s=imgn(i-r:i+r,j-r:j+r).*w;
        imgn(i,j)=sum(sum(s))/sum(sum(w));
    
    end
    waitbar(i/m);
end
close(h)

figure;
imshow(mat2gray(imgn(r+1:m+r,r+1:n+r)));  

效果:

原图

双边滤波后

转载于:https://www.cnblogs.com/tiandsp/archive/2012/12/19/2824781.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

matlab练习程序(双边滤波) 的相关文章

  • 网络数据包捕获函数库Libpcap安装与使用(非常强大)

    1 Libpcap简介 Libpcap是Packet Capture Libray的英文缩写 xff0c 即数据包捕获函数库 该库提供的C函数接口用于捕捉经过指定网络接口的数据包 xff0c 该接口应该是被设为混杂模式 这个在原始套接子中有
  • STM32F103控制两个步进电机按照一定转速比运动

    这个暑假没有回家 xff0c 在学校准备九月份的电子设计竞赛 今天想给大家分享一下STM32定时器控制两个步进电机按照一定速度比转动的问题 这次做的05年的电子设计竞赛题目 xff0c 运动悬挂系统 本实验是控制两个步进电机通过一个定滑轮用
  • Android 编程下的 Secret Code

    我们很多人应该都做过这样的操作 xff0c 打开拨号键盘输入 4636 等字符就会弹出一个界面显示手机相关的一些信息 xff0c 这个功能在 Android 中被称为 Android Secret Code xff0c 除了这些系统预置的
  • 用vim格式化代码

    格式化全文 xff1a gg 61 G 自动缩进当前行 xff1a 61 61 这个是原文节选 xff1a 14 6 How do I format indent an entire file You can format indent a
  • C# 之 反射性能优化3

    阅读目录 开始用Delegate优化反射的缺点用Delegate优化反射的优点用CodeDOM优化反射的优点如何用好CodeDOM xff1f 用CodeDOM优化反射的缺点能不能不使用委托 xff1f 根据反射密集程度选择优化方法Code
  • 基于用户行为的视频聚类方案

    在个性化推荐系统中 xff0c 通常是由挖掘物品属性来理解用户兴趣 xff0c 从而构建推荐模型 从用户行为去理解物品属性往往做得比较简单 xff0c 通常只是一些简单的标签统计 为了深入到用户行为去理解内容 xff0c 美拍利用用户的点击
  • .html文件调用接口示例

    直接在 html文件中请求接口的写法示例 span class hljs meta lt DOCTYPE html gt span span class hljs tag lt span class hljs name html span
  • mac os 环境下配置VMware Fusion虚拟机的互通网络

    安装环境 本文基于macOS Sierra 10 12 6系统为例 虚拟机应用VMware Fusion 10 1 3 系统Linux redhat 镜像rhel server 7 4 x86 64 dvd iso VMware Fusio
  • webpack的proxyTable无效的解决方案

    最近遇到这个需要单页访问跨域后台的问题 遇到了网上很多人说的 xff0c proxyTable无论如何修改 xff0c 都没效果的现象 经过几轮测试 xff0c 总结出一下几种解决方案 xff1a 1 xff08 非常重要 xff09 确保
  • 单个LottieAnimationView加载不同的lottie动画

    需求 最近做了一个单个LottieAnimationView根据用户点击选项的不同 xff0c 加载不同的lottie动画的需求 网上的一些demo和博客大多只是单独的加载一个lottie动画 xff0c 普遍不会有问题 xff0c 但是如
  • 使用element-ui中的table中的合计行的show-summary方法总结

    表尾结束景行统计的的问题 使用show summary 和 summary method 61 34 getSummaries 34 这两个方法搭配使用 逻辑处理 在最后必须使用return 出去就行 其中的逻辑可以自行定制 实现后达到的效
  • 如何下载网页所有资源(附源码)

    nodejs扒取html页面中所有链接资源 前言 xff1a 总有些人 xff0c 想下载一个插件 xff0c 能直接获取浏览器显示页面的所有资源 也就是下载一个其他人的网站 xff0c 但是不想一个个复制链接的内容 xff0c 原因大致有
  • Python 实现简单的登录注册界面

    Python 实现简单的登录注册界面 注意 xff1a 编写代码之前需要导入很重要的包 import tkinter as tk import pickle from tkinter import messagebox 主要实现的功能 首先
  • VC窗口抖动源码

    窗口抖动实例 CPoint CurrentPos 抖完还要回到这个位置 xff0c 不要乱跑 CRect rect 这一段计算主要是为了满足SetWindowPos 的参数要求 不解释吧 GetClientRect amp rect Cli
  • Ubuntu编译驱动程序的准备(转)

    ubuntu不带linux内核源码 xff0c 需要自己下载安装 1 xff0c 查看自己的内核版本 uname r 2 xff0c 查看源内的内核源码类表 apt cache search linux source 3 xff0c 下载安
  • 树莓派练习程序(雨水检测)

    水滴检测模块如下 xff1a 树莓派的引脚如下图 xff1a 我们将Vcc引脚连接物理接口2 xff0c GND引脚连接物理接口39 xff0c DO引脚连接物理接口40 实物连接如下图 xff1a 编程使用WiringPi库 xff0c
  • 从C# 3.0说以人为本(三)—— 扩展方法

    说完了LINQ的语言支持和语法灵活 xff0c 下面就是一个非常有用的东东 扩展方法 xff08 Extension Method 还记得我们看了好几遍的LINQ吧 xff0c 下面这个 xff1a var numQuery 61 from
  • linux下查看用户及用户组的方法

    linux下查看用户及用户组的方法 whois 功能说明 xff1a 查找并显示用户信息 语 法 xff1a whois 帐号名称 补充说明 xff1a whois指令会去查找并显示指定帐号的用户相关信息 xff0c 因为它是到Networ
  • 计算机图形学在GIS中的应用,GIS在交通中的应用与发展-

    xff27 xff29 xff33 在交通中的应用与发展 摘 要 xff1a 地理信息技术的日臻成熟为 xff27 xff29 xff33 在交通领域内的广泛应用创造了一定基础 本文总结了 xff27 xff29 xff33 技术的特点 x
  • 用多进程同步方法演示“生产者-消费者”问题_操作系统之进程管理(2):多进程的组织、交替、合作...

    1 多进程如何组织 xff1f 上文中 操作系统之进程管理 1 xff1a 从CPU如何执行进程说起 xff0c 我们说过操作系统为每个程序提供了一个叫做PCB Process Control Block进程控制块 的数据结构 它记录了该程

随机推荐