热方程图像去噪原理以及Matlab代码实现

热方程图像去噪原理以及Matlab代码实现

初学图像,不足之处请指正

本文主要分成两个部分

1. 原理,偏微分方程给图像去噪

首先我们考虑一类偏微分方程———热传导方程,他描述了一个区域内温度在一段时间的变化情况,热方程的解是具有将初始温度平滑的性质的,既温度的由高到低的传播过程,二维热方程的表达式为:
{ u t ( x , y , t ) = Δ u ( x , y , t ) u ( x , y , 0 ) = u ( x , y ) \left\{ \begin{aligned} u_t(x,y,t) = \Delta u(x,y,t)\\ u(x,y,0) = u(x,y) \end{aligned} \right. {ut(x,y,t)=Δu(x,y,t)u(x,y,0)=u(x,y)
如果将图像看成一种能量分布,则亮的区域就代表温度高的区域,暗的区域代表温度低的区域,通过热方程,亮的区域会逐渐变暗,暗的区域会逐渐变亮,这样能量分布就会越来越均匀,相应地,图像也就会变得越来越光滑。
现在我们将方程离散化,设t时刻的图像方程为 u i , j t , u^t_{i,j}, ui,jt,
时间离散为 t 1 , t 2 , . . , t n t_1,t_2,..,t_n t1,t2,..,tn,利用五点差分格式则偏导数可写成如下格式
u i , j t n − u i , j t n − 1 τ = 1 h 2 ( u i + 1 , j + u i − 1 , j + u i , j + 1 + u i , j − 1 − 4 u i , j ) \frac{u^{t_n}_{i,j}-u^{t_n-1}_{i,j}}{\tau}=\frac{1}{h^2}(u_{i+1,j}+u_{i-1,j}+u_{i,j+1}+u_{i,j-1}-4u_{i,j}) τui,jtnui,jtn1=h21(ui+1,j+ui1,j+ui,j+1+ui,j14ui,j)
其中 τ \tau τ h h h是很小的时间间隔和步长间隔。

2. Matlab程序编码示例

首先将图片读入MATLAB内存空间,既输入如下代码:

I0 = imread('D:\Users\cc\Documents\Pictures\Saved Pictures\77.jpg');
I1 = rgb2gray(I0);

根据离散化的方程编写程序代码:

u = double(I1);
[m,n] = size(u);
k = 10;
dt = 0.25;
dh = 1;
cc = ceil(n/2);
kk = u(:,cc);
In = double(I1);
for i = 1:k
   u =  u + dt/dh*(u([2:m, m],:)+u([1, 1:m-1],:)+u(:,[2:n, n])+u(:,[1, 1:n-1])-4*u);
   [m,n] = size(u);
   yy = u(:, cc);
   xx = 1:m;
   plot(xx,yy, '-r', xx, kk,'k');
   pause(0.5);
   figure(1);
end
figure(2); imshow(I1);
figure(3); imshow(uint8(u));

k代表的是迭代次数,运行后的结果可以看出,经过热方程处理后,k越大,去噪效果也就越明显,图像也就变得更加模糊,也就是变得平滑了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值