Nonlinear isotropic diffusion filtering
∂ t u = div ( D ( ∇ u σ ) ∇ u ) \partial_{t} u=\operatorname{div}\left(D\left(\nabla u_{\sigma}\right) \nabla u\right) ∂tu=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相关推荐
- 图像/视频去噪算法资源集锦
点击上方"深度学习技术前沿",选择"星标"公众号 资源干货,第一时间送达 图像去噪是指减少数字图像中噪声的过程.随着深度学习的发展,也有许多深度学习方法被用于图 ...
- 指纹识别综述(3): 特征提取
指纹识别综述系列 1.导论:2.指纹传感器:3.特征提取:4.匹配:5.分类与检索:6.现场指纹识别: 7.指纹合成: 8.唯一性: 9.指纹系统安全:10.深度学习方法:11.专利. 本文主要基于& ...
- 【论文阅读笔记】One Shot 3D Photography
论文主页:https://facebookresearch.github.io/one_shot_3d_photography/ 代码地址:https://github.com/facebookres ...
- Image Denoising State-of-the-art
Github上看到的,最近几年顶级会议和期刊关于图像去噪方面的论文列表,直接上链接: https://github.com/flyywh/Image-Denoising-State-of-the-ar ...
- 图像去噪,深度学习去噪,普通方法
1.BM3D 降噪 2.DCT 降噪 3.PCA 降噪 4.K-SVD 降噪 5.非局部均值降噪 6.WNNM 降噪 7.基于主成分分析和双边滤波的图像降噪算法 8.小波变换 9.小波阈值降噪 10. ...
- A-KAZE论文研读
AKAZE是KAZE的加速版本.KAZE在构建非线性空间的过程中很耗时,在AKAZE中将Fast Explicit Diffusion(FED)加入到金字塔框架可以dramatically speed ...
- DnCNN论文阅读笔记【MATLAB】
DnCNN论文阅读笔记 论文信息: 论文代码:https://github.com/cszn/DnCNN Abstract 提出网络:DnCNNs 关键技术: Residual learning an ...
- 【论文阅读】面部表情识别综述(2018年)(Deep Facial Expression Recognition: A Survey)
论文地址:https://ieeexplore.ieee.org/abstract/document/9039580 百度网盘地址:https://pan.baidu.com/s/1A8NKT_wz4 ...
- 稳定方法 stabilization
原文参考https://www.comsol.com/blogs/understanding-stabilization-methods/,部分语句为了通顺有改动. 当输运过程由对流而不是扩散主导时, ...
最新文章
- 2016政策与市场协同发力大数据,小公司如何搏杀BAT?
- Struts2 JSON
- 图像添加柯西分布噪声
- VS.net中快捷键收缩和展开代码段
- asp.net 获得域名,端口,虚拟目录[转]
- 浏览器和驱动版本对应关系
- python计算速度_python中如何提高计算速度?
- JavaWeb——AOP
- WDCP控制面板的常用liunx命令集
- java基础总结06-常用api类-System类常用方法
- 网络营销和电子商务傻傻分不清?
- mysql中dml全称是什么_MySQL中的DML、DDL、DCL是什么意思
- 维恩图是什么?如何使用维恩图?
- WIN 7 系统 问题记录
- 二面深信服前端,秋招面经分享
- 2D shape decompositions二维形状分解
- 实战项目之基于flask的及时聊天系统
- IUV“经世杯”option3X
- socket网络编程-socket()、bind()、setsockopt()、recvfrom()、sendto()函数
- BaseService和其实现类
热门文章
- Ubuntu UFW 防火墙配置
- python中readlines怎么用_Python File readlines() 使用方法
- springboot西安酷跑健身房管理系统毕业设计源码345421
- JavaScript简餐——代理Proxy与反射(一)
- 如何用yum源安装MySQL5.7
- Centos7 查看、增加、删除用户组与用户
- 【C】猜数字,关机小程序,一些分支循环的练手题
- 一个玩游戏的失足青年,转行做编程到教育的挣扎过程(3/4)
- STM32八种IO口模式
- ubuntu16.04 下鼠标变成十字形状无法点击情况解决