MRF马尔科夫链在图像去噪中的应用(python+matlab)

思路:
1转换为二进制图像并覆盖。
2生成名为的翻转图像。
3使用 ICM 对翻转的图像进行降噪。
代码:

MRF马尔科夫链在图像去噪中的应用(python+matlab)_第1张图片

MRF马尔科夫链在图像去噪中的应用(python+matlab)_第2张图片

MRF马尔科夫链在图像去噪中的应用(python+matlab)_第3张图片

 

MRF马尔科夫链在图像去噪中的应用(python+matlab)_第4张图片

MRF马尔科夫链在图像去噪中的应用(python+matlab)_第5张图片

 

MRF马尔科夫链在图像去噪中的应用(python+matlab)_第6张图片

结果:

MRF马尔科夫链在图像去噪中的应用(python+matlab)_第7张图片

注意知识点:

1原图:

quzao3.jpg

MRF马尔科夫链在图像去噪中的应用(python+matlab)_第8张图片

我试着用其他图做了这个实验,但是有灰色区域就会出现问题。

2最终成像时:给图片加标题,如语句:prop = font_manager.FontProperties(fname=r'E:\学习代码\ttf字体\华康娃娃体.ttf'),其中的华康娃娃体.ttf需要下载,用的时候指定路径即可。

3 ICM我认为是这个程序的重点!!ICM 算法是计算最小能量函数的经典算法。

4接下来就是用matlab去实现降噪

close all;
clear all;
I=imread('quzao3.jpg');
I1=im2bw(I);
subplot(2,2,1)
imshow(I1);
title('原图像');
J = imnoise(I,'salt & pepper', 0.2);
J1=im2bw(J);
subplot(2,2,2)
imshow(J1);
title('噪声图')
 
Y=ones(size(J1));
Y(J1==0)=-1;
[m,n]=size(Y);
X=Y;h=0;beta=3.5;eta=.1;
while 1
    tot=0
    for i=2:1:m-1
        for j=2:1:n-1
            temp=X(i,j);
            X(i,j)=-1;%根据定义计算势函数
        E1=h*X(i,j)-beta*X(i,j)*(X(i-1,j)+X(i+1,j)+X(i,j-1)+X(i,j+1))-eta*X(i,j)*Y(i,j);
           X(i,j)=1;
           E2=h*X(i,j)-beta*X(i,j)*(X(i-1,j)+X(i+1,j)+X(i,j-1)+X(i,j+1))-eta*X(i,j)*Y(i,j);
           if E1                 X(i,j)=-1;
            else
                X(i,j)=1;
            end   
            if temp~=X(i,j)
                tot=tot+1;
            end
        end
    end
    if tot<1
        break;
    end
end
 
J2=X;
J2(X==-1)=0;
subplot(2,2,3)
imshow(J2);
title('mrf降噪结果')

成像结果:

MRF马尔科夫链在图像去噪中的应用(python+matlab)_第9张图片

 这个代码重点就是势函数那一部分。

!!!马尔科夫随机场:重点在于变量的联合密度函数以及可以与吉普斯随机场对照学习。

你可能感兴趣的:(图像处理,去噪,python,图像处理,matlab)