clear;
clc;
Orig = imread('D:\MATLAB实验材料\拉普拉斯算子来实现对图像的边缘检测laplacian\laplacian\1.bmp');
I = rgb2gray(Orig);
[x,y] = size(I);
% to obscure a clear pic
LEN=20;
THETA=45;
PSF=fspecial('motion',LEN,THETA);
MF=imfilter(I,PSF,'circular');
[p_5,t_5] = edge(I,'log');
p_5 = double(p_5);
MF_t = MF;
for i = 1 : (x)
for j = 1 : (y)
if (p_5(i,j) == 255)
for m = 1 : 10
for n = 1 : 10
if(MF(i+m,j+n)>200)
MF(i+m,j+n) = MF(i+m,j+n) * 10;
if (MF(i+m,j+n)>255)
MF(i+m,j+n) = 255;
end
else
MF(i+m,j+n) = MF(i+m,j+n) / 10;
if (MF(i+m,j+n)<100)
MF(i+m,j+n) = 0;
end
end
if(MF(i-m,j-n)>200)
MF(i-m,j-n) = MF(i-m,j-n) * 10;
if (MF(i-m,j-n)>255)
MF(i-m,j-n) = 255;
end
else
MF(i-m,j-n) = MF(i-m,j-n) / 10;
if (MF(i-m,j-n)<100)
MF(i-m,j-n) = 0;
end
end
end
end
end
end
end
figure;
subplot(2,2,1);imshow(I);title('original pic');
subplot(2,2,2);imshow(MF_t);title('blurry pic');
subplot(2,2,3);imshow(p_5);title('LOG of clear pic');
subplot(2,2,4);imshow(MF);title('MF strengthened');