matlab实现各向异性扩散

看书一直不理解各向异性扩散究竟是什么,直到看了某大佬的解释:

主要是用来平滑图像的,克服了高斯模糊的缺陷,各向异性扩散在平滑图像时是保留图像边缘的(和双边滤波很像)。

通常我们有将图像看作矩阵的,看作图的,看作随机过程的,记得过去还有看作力场的。

这次新鲜,将图像看作热量场了。每个像素看作热流,根据当前像素和周围像素的关系,来确定是否要向周围扩散。比如某个邻域像素和当前像素差别较大,则代表这个邻域像素很可能是个边界,那么当前像素就不向这个方向扩散了,这个边界也就得到保留了。

大佬博客在此

matlab脚本

pic = imread('C:\Users\lenovo\Desktop\素材\test.jpg', 'jpg');
pic = rgb2gray(pic);
picNew = PM(pic);
figure;
imshow(pic);
title('原图');
figure;
imshow(picNew);
title('各向异性扩散');

matlab各向异性扩散函数

function newPic = PM(pic)
[m n] = size(pic);
lambda = 0.15;
K = 15;
N = 20;
newPic = zeros(m, n);
pic = double(pic);
for t = 1 : N
    for i = 2 : m-1
        for j = 2 : n-1
            NI = pic(i-1, j) - pic(i, j);
            SI = pic(i+1, j) - pic(i, j);
            EI = pic(i, j-1) - pic(i, j);
            WI = pic(i, j+1) - pic(i, j);
            cN = exp(-NI^2/K^2);
            cS = exp(-SI^2/K^2);
            cE = exp(-EI^2/K^2);
            cW = exp(-WI^2/K^2);
            %fprintf('%d %d\n', i, j);
            newPic(i, j) = pic(i, j) + lambda*(NI*cN + SI*cS + EI*cE + WI*cW);
        end;
    end
    pic = newPic;
end;
newPic = pic;
newPic = uint8(newPic);
           

 效果图

 

 

 

  • 0
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
各向异性扩散滤波(Anisotropic Diffusion Filter)是一种基于热扩散框架的图像滤波方法,它通过偏微分方程来表示。它被广泛应用于图像或表面平滑、图像修复和图像分割等领域。该滤波方法克服了高斯模糊的缺陷,能够在平滑图像的同时保留图像的边缘。各向异性扩散滤波与双边滤波有相似之处。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [各向异性扩散滤波(Anisotropic Filter)原理与C++实现](https://blog.csdn.net/L_J_Kin/article/details/103761244)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [数字图像处理Python语言实现-图像增强-各向异性扩散滤波](https://blog.csdn.net/wujuxKkoolerter/article/details/108938618)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [matlab各向异性扩散滤波](https://blog.csdn.net/weixin_30364147/article/details/95226148)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值