图像各向异性平滑滤波

  • 介绍
    • 原理解析
    • 实现

介绍

图像处理中先验知识较少的情况下,需要在保留图像边缘信息下同时对图像进行平滑,可以采用将越明显的边缘减少平滑率的方式进行滤波,就是今天要讲的PM各向异性扩散滤波。

https://max.book118.com/html/2018/0913/6034150213001215.shtm
https://wenku.baidu.com/view/9c2897cbf78a6529657d5391.html

原理解析


通过迭代计算最佳扩散平滑尺度,

一般迭代1到100次,可以通过获取的最佳效果来决定。

实现

function [filtmap2d] = anisotropicfiltering(map2d, iterations, lambda, contrastK, smoothsigma, Dosharpenfirst, sharpensigma)
%ANISOTROPICFILTER 此处显示有关此函数的摘要
%   此处显示详细说明if iterations <= 0iterations = 100;endif smoothsigma <= 0smoothsigma = 2;endsmoothfilt = fspecial('gaussian',ceil(6*smoothsigma),smoothsigma);contrastK_square = contrastK^2;if Dosharpenfirst == trueresult_map2d = tools_sharpen(grapmap3d, sharpensigma);result_map2d(result_map2d < 0) = 0;result_map2d = result_map2d / 256;elseresult_map2d = map2d / 256;endfor iter=1:iterationsDelta_N = result_map2d(1:end-2,2:end-1) - result_map2d(2:end-1,2:end-1);Delta_S = result_map2d(3:end,2:end-1) - result_map2d(2:end-1,2:end-1);Delta_E = result_map2d(2:end-1,3:end) - result_map2d(2:end-1,2:end-1);Delta_W = result_map2d(2:end-1,1:end-2) - result_map2d(2:end-1,2:end-1);% % %   PM filterg_N = exp(-(Delta_N.^2)/contrastK_square);g_S = exp(-(Delta_S.^2)/contrastK_square);g_E = exp(-(Delta_E.^2)/contrastK_square);g_W = exp(-(Delta_W.^2)/contrastK_square);% % % %   catte et al filter (gaussian smoothing)%     temp_map2d = imfilter(result_map2d, smoothfilt);%     temp_Delta_N = temp_map2d(1:end-2,2:end-1) - temp_map2d(2:end-1,2:end-1);%     temp_Delta_S = temp_map2d(3:end,2:end-1) - temp_map2d(2:end-1,2:end-1);%     temp_Delta_E = temp_map2d(2:end-1,3:end) - temp_map2d(2:end-1,2:end-1);%     temp_Delta_W = temp_map2d(2:end-1,1:end-2) - temp_map2d(2:end-1,2:end-1);%     g_N = 1 ./ (1+(temp_Delta_N.^2)/contrastK_square);%     g_S = 1 ./ (1+(temp_Delta_S.^2)/contrastK_square);%     g_E = 1 ./ (1+(temp_Delta_E.^2)/contrastK_square);%     g_W = 1 ./ (1+(temp_Delta_W.^2)/contrastK_square);result_map2d(2:end-1,2:end-1) = result_map2d(2:end-1,2:end-1) + lambda .* (g_N.*Delta_N + g_S.*Delta_S + g_E.*Delta_E + g_W.*Delta_W);if mod(iter,5) == 0figure;imshow(result_map2d(2:end-1,2:end-1),[]);endendfiltmap2d = result_map2d;filtmap2d(1,:) = result_map2d(2,:);filtmap2d(end,:) = result_map2d(end-1,:);filtmap2d(:,1) = result_map2d(:,2);filtmap2d(:,end) = result_map2d(:,end-1);filtmap2d = (filtmap2d - min(filtmap2d(:))) / (max(filtmap2d(:)) - min(filtmap2d(:))) * 256;
end

图像各向异性平滑滤波相关推荐

  1. 数字图像处理 实验二:图像的平滑滤波

    基于Matlab的图像的平滑滤波 DIP实验2:图像的平滑滤波 实验目的 实验内容 参考代码 实验结果 DIP实验2:图像的平滑滤波 实验目的 平滑的目的是减少噪声对图像的影响.掌握线性滤波和中值滤波 ...

  2. 图像的平滑滤波、边缘检测、阈值化、腐蚀膨胀等原理介绍

      一幅图像可以定义为一个二维函数f(x,y)f(x,y)f(x,y),其中xxx和yyy是空间/平面坐标,而在任何一对空间坐标(x,y)(x,y)(x,y)处的幅值fff称为图像在该点处的强度或灰度 ...

  3. 空间滤波(平滑滤波)

    本实验所采用的空间滤波方法是平滑滤波,下图是两个3*3平滑(均值)滤波器模板,对图像进行平滑处理. 平滑线性空间滤波器的输出响应是包含在滤波器模板邻域内的像素的简单平均值.平滑滤波器多用于模糊处理和降 ...

  4. opencv-python学习(三)图片的平滑滤波处理

    目录 前言: 1. 大致原理说明 2. 常用参数 滤波方式 1. 高斯滤波 2. 均值滤波 3. 方框滤波 4. 中值滤波 5. 双边滤波 6. 自定义卷积核滤波 前言: 1. 大致原理说明 图像的平 ...

  5. 图像保边滤波器集锦---各向异性扩散滤波(Anisotropic Filter)算法与实现

    本篇集锦要介绍的是各向异性扩散滤波,也叫Anisotropic filter,它克服了高斯模糊的缺陷,具有保留图像边缘细节同时减少噪声的作用,因此,也是可以做人像美颜磨皮算法的: 首先,我们来了解一下 ...

  6. c#中实现图像图像卷积与滤波-高斯平滑

    使用C#语言编写高斯平滑. 一.线性滤波与卷积的基本概念 2D卷积需要4个嵌套循环4-double loop,所以它并不快,除非我们使用很小的卷积核.这里一般使用3×3或者5×5.而且,对于滤波器,也 ...

  7. python opencv高斯滤波_【OpenCV】基于Python的图像高斯平滑和椒盐噪声处理 | 学步园...

    最近要做一个Project,是使用TV来对添加了Gaussian和Salt&Pepper噪声的图像进行恢复,前期的任务是生成噪声污染的图像. 噪声图像的生成采用对图像进行高斯平滑,之后在随机的 ...

  8. OpenCV图像各向异性滤波

    OpenCV图像各向异性滤波 各向异性概念 各向异性(英文名称:anisotropy)是指材料在各方向的力学和物理性能呈现差异的特性.晶体的各向异性即沿晶格的不同方向,原子排列的周期性和疏密程度不尽相 ...

  9. smooth: 对图像进行均值平滑滤波,消除噪声

    smooth: 对图像进行均值平滑滤波,消除噪声 typedef unsigned char uint8; typedef int sint32; sint32   IMGW = 256; // 当前 ...

  10. 各向异性扩散滤波_原理与算法

    1.原理简述 各向异性扩散滤波主要是用来平滑图像的,克服了高斯模糊的缺陷,各向异性扩散在平滑图像时是保留图像边缘的,和双边滤波很像. 通常我们有将图像看作矩阵的,看作图的,看作随机过程的,记得过去还有 ...

最新文章

  1. this Activity.this Activity.class
  2. Java原子操作类,你知道多少?
  3. 小学生python入门-写给中小学老师们的Python入门指引
  4. Mysql数据库主从及主主复制配置演示
  5. C++虚继承(三) --- C++ 对象的内存布局(下)(陈皓)
  6. Java应用集群下的定时任务处理方案(mysql)
  7. Android 应用开发(42)---ImageView
  8. java高级工程师认证考试_java高级工程师开放面试题集
  9. 建议考事业编吗?为什么?
  10. 说说如何抛出Java异常
  11. HDU2187 老人是真饿了【贪心】
  12. VR AR体验或成2017圣丹斯电影节“新主角”
  13. IntelliJ IDEA 调试技巧,比 Eclipse 强太多了!
  14. Java | ProGuard——java代码混淆利器
  15. 计量经济学知识点及案例整理
  16. java 信鸽demo_腾讯信鸽推送Java服务端
  17. 主析取范式与主合取范式原理探究
  18. 隐私信息检索(隐匿查询)
  19. Me安装教程(同pr)
  20. C语言学习--01 认识数据类型

热门文章

  1. CAD零基础教程笔记
  2. BUUCTF[SCTF2019]Who is he题解
  3. 关于“程序员996”,互联网大神发话了,能顶用吗?
  4. 什么是模式识别,模式识别概念的基本介绍
  5. linux pap认证,linux – pppd“同行拒绝认证”
  6. 【WINRAR安装和使用教程】常用压缩软件
  7. 将canvas生成图片或者签名背景透明变为白色背景
  8. 360站长工具-免费360链接提交主动推送收录工具自带收录排名蜘蛛查询
  9. JavaScript高级(二)
  10. [渝粤教育] 扬州市职业大学 液压与气动技术 参考 资料