思路: 1转换为二进制图像并覆盖。 2生成名为的翻转图像。 3使用 ICM 对翻转的图像进行降噪。 代码:
结果:
注意知识点:
1原图:
quzao3.jpg
我试着用其他图做了这个实验,但是有灰色区域就会出现问题。
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
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降噪结果')
成像结果:
这个代码重点就是势函数那一部分。
!!!马尔科夫随机场:重点在于变量的联合密度函数以及可以与吉普斯随机场对照学习。