∂ t u = div ⁡ ( D ( ∇ u σ ) ∇ u ) \partial_{t} u=\operatorname{div}\left(D\left(\nabla u_{\sigma}\right) \nabla u\right) ∂t​u=div(D(∇uσ​)∇u) D ( ∇ u σ ) = g ( ∣ ∇ u σ ∣ ) I D\left(\nabla u_{\sigma}\right)=g\left(\left|\nabla u_{\sigma}\right|\right) I D(∇uσ​)=g(∣∇uσ​∣)I g ( s ) = e x p ( − s 5 5 λ 5 ) g(s) = exp(\frac{-s^5}{5\lambda^5}) g(s)=exp(5λ5−s5​)

% convolute.m
function rtn = convolute(f, M, N, sigma)rtn = zeros(M,N);if sigma == 0rtn = f;return;elseif sigma == 1K = [0.01, 0.01, 0.01, 0.01, 0.01; ...0.01, 0.07, 0.1, 0.07, 0.01;...0.01, 0.1, 0.16, 0.1, 0.01; ...0.01, 0.07, 0.1, 0.07, 0.01; ...0.01, 0.01, 0.01, 0.01, 0.01];% sum(sum(K))for x = 1:Mfor y = 1:Nfor i = 1:5for j = 1:5tmp1 = mod(x+3-i,M);tmp2 = mod(y+3-j,N);if tmp1 ==0tmp1 = M;endif tmp2 ==0tmp2 = N;endrtn(x,y) = rtn(x,y) + ...f(tmp1,tmp2) * K(i,j);endendendendreturn;elseif sigma == 2K = [0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01; ...0.01, 0.015, 0.02, 0.03, 0.02, 0.015, 0.01; ...0.01, 0.02, 0.04, 0.035, 0.04, 0.02, 0.01;...0.01, 0.03, 0.045, 0.09, 0.045, 0.03, 0.01; ...0.01, 0.02, 0.04, 0.045, 0.04, 0.02, 0.01; ...0.01, 0.015, 0.02, 0.03, 0.02, 0.015, 0.01; ...0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01];% sum(sum(K))for x = 1:Mfor y = 1:Nfor i = 1:7for j = 1:7tmp1 = mod(x+4-i,M);tmp2 = mod(y+4-j,N);if tmp1 ==0tmp1 = M;endif tmp2 ==0tmp2 = N;endrtn(x,y) = rtn(x,y) + ...f(tmp1,tmp2) * K(i,j);endendendendreturn;end
end% % calculating normal distribution using R
% sigma = 2
% M = matrix(0, nrow = 2*sigma+1, ncol = 2*sigma+1)
% for(i in (-sigma):(sigma)){%   for(j in (-sigma):(sigma)){%       M[i+sigma+1,j+sigma+1] =
%       pnorm((i+0.5)/sigma)*pnorm((j+0.5)/sigma)-pnorm(((i+0.5)-1)/sigma)*pnorm((j+0.5)/sigma)-pnorm((i+0.5)/sigma)*pnorm(((j+0.5)-1)/sigma)+pnorm(((i+0.5)-1)/sigma)*pnorm(((j+0.5)-1)/sigma)
%
%   }
% }
% M
%main.m
pic = imread('pic0.jpg');
u = imresize(pic,0.4);
u = rgb2gray(u);
imwrite(u,'pic.jpg');pic = imread('pic.jpg');
u = double(pic);
s = size(u); M = s(1); N = s(2);
n_loop = 10;
sigma = 1; % 卷积的程度,1和2差不多
lambda = 3; % lambda越大,处理得到的图片越光滑% circular boundary value
for x = 2:M-1u(x,1) = u(x,N-1);u(x,N) = u(x,1+1);
end
for y = 2:N-1u(1,y) = u(M-1,y);u(M,y) = u(1+1,y);
enddiv_x = zeros(M,N); div_y = zeros(M,N);
D = zeros(M,N);
for i = 1:n_loopu_sigma = convolute(u,M,N,sigma);for x = 2:M-1for y = 2:N-1s = ((u_sigma(x,y)-u_sigma(x-1,y))^2+(u_sigma(x,y)-u_sigma(x,y-1))^2)^0.5;D(x,y) = exp(-s^5/(5*lambda^5));endendfor x = 2:M-1for y = 2:N-1div_x(x,y) = (u(x,y)-u(x-1,y))*D(x,y);div_y(x,y) = (u(x,y)-u(x,y-1))*D(x,y);endendfor x = 3:M-1for y = 3:N-1u(x,y) = u(x,y)+div_x(x,y)-div_x(x-1,y)+div_y(x,y)-div_y(x,y-1);endenddisp(i);if mod(i,1) == 0string = ['u_',num2str(i),'.jpg'];imwrite(uint8(u),string);end
end


Nonlinear isotropic diffusion filtering相关推荐

  1. 图像/视频去噪算法资源集锦

    点击上方"深度学习技术前沿",选择"星标"公众号 资源干货,第一时间送达 图像去噪是指减少数字图像中噪声的过程.随着深度学习的发展,也有许多深度学习方法被用于图 ...

  2. 指纹识别综述(3): 特征提取

    指纹识别综述系列 1.导论:2.指纹传感器:3.特征提取:4.匹配:5.分类与检索:6.现场指纹识别: 7.指纹合成: 8.唯一性: 9.指纹系统安全:10.深度学习方法:11.专利. 本文主要基于& ...

  3. 【论文阅读笔记】One Shot 3D Photography

    论文主页:https://facebookresearch.github.io/one_shot_3d_photography/ 代码地址:https://github.com/facebookres ...

  4. Image Denoising State-of-the-art

    Github上看到的,最近几年顶级会议和期刊关于图像去噪方面的论文列表,直接上链接: https://github.com/flyywh/Image-Denoising-State-of-the-ar ...

  5. 图像去噪,深度学习去噪,普通方法

    1.BM3D 降噪 2.DCT 降噪 3.PCA 降噪 4.K-SVD 降噪 5.非局部均值降噪 6.WNNM 降噪 7.基于主成分分析和双边滤波的图像降噪算法 8.小波变换 9.小波阈值降噪 10. ...

  6. A-KAZE论文研读

    AKAZE是KAZE的加速版本.KAZE在构建非线性空间的过程中很耗时,在AKAZE中将Fast Explicit Diffusion(FED)加入到金字塔框架可以dramatically speed ...

  7. DnCNN论文阅读笔记【MATLAB】

    DnCNN论文阅读笔记 论文信息: 论文代码:https://github.com/cszn/DnCNN Abstract 提出网络:DnCNNs 关键技术: Residual learning an ...

  8. 【论文阅读】面部表情识别综述(2018年)(Deep Facial Expression Recognition: A Survey)

    论文地址:https://ieeexplore.ieee.org/abstract/document/9039580 百度网盘地址:https://pan.baidu.com/s/1A8NKT_wz4 ...

  9. 稳定方法 stabilization

    原文参考https://www.comsol.com/blogs/understanding-stabilization-methods/,部分语句为了通顺有改动. 当输运过程由对流而不是扩散主导时, ...

最新文章

  1. 2016政策与市场协同发力大数据,小公司如何搏杀BAT?
  2. Struts2 JSON
  3. 图像添加柯西分布噪声
  4. VS.net中快捷键收缩和展开代码段
  5. asp.net 获得域名,端口,虚拟目录[转]
  6. 浏览器和驱动版本对应关系
  7. python计算速度_python中如何提高计算速度?
  8. JavaWeb——AOP
  9. WDCP控制面板的常用liunx命令集
  10. java基础总结06-常用api类-System类常用方法
  11. 网络营销和电子商务傻傻分不清?
  12. mysql中dml全称是什么_MySQL中的DML、DDL、DCL是什么意思
  13. 维恩图是什么?如何使用维恩图?
  14. WIN 7 系统 问题记录
  15. 二面深信服前端,秋招面经分享
  16. 2D shape decompositions二维形状分解
  17. 实战项目之基于flask的及时聊天系统
  18. IUV“经世杯”option3X
  19. socket网络编程-socket()、bind()、setsockopt()、recvfrom()、sendto()函数
  20. BaseService和其实现类

热门文章

  1. Ubuntu UFW 防火墙配置
  2. python中readlines怎么用_Python File readlines() 使用方法
  3. springboot西安酷跑健身房管理系统毕业设计源码345421
  4. JavaScript简餐——代理Proxy与反射(一)
  5. 如何用yum源安装MySQL5.7
  6. Centos7 查看、增加、删除用户组与用户
  7. 【C】猜数字,关机小程序,一些分支循环的练手题
  8. 一个玩游戏的失足青年,转行做编程到教育的挣扎过程(3/4)
  9. STM32八种IO口模式
  10. ubuntu16.04 下鼠标变成十字形状无法点击情况解决