📄 ch8_4_5.m
字号:
%%%%%%%%%%%%%%%%%%%% 盲卷积滤波复原
%图像模糊化
I = imread('cameraman.tif');
figure;imshow(I);title('Original Image');
PSF = fspecial('motion',13,45);
figure; imshow(PSF,[],'notruesize');
Blurred = imfilter(I,PSF,'circ','conv');
figure; imshow(Blurred); title('Blurred Image');
%图像复原
INITPSF = ones(size(PSF));%获取函数的特征
[J P]= deconvblind(Blurred,INITPSF,30);%盲卷积,保留使用的PSF
figure; imshow(J);
figure; imshow(P,[],'notruesize');
WEIGHT = edge(I,'sobel',.28);%sobel算子提取边缘
se1 = strel('disk',1);
se2 = strel('line',13,45);
WEIGHT = ~imdilate(WEIGHT,[se1 se2]);%膨胀操作,边界像素设为零
WEIGHT = padarray(WEIGHT(2:end-1,2:end-1),[2 2]);
figure; imshow(WEIGHT);
P1 = P;%保存数据
P1(find(P1 < 0.01))=0;%修改PSF函数
%利用上面得到的WEIGHT进行盲卷积
[J2 P2] = deconvblind(Blurred,P1,50,[],WEIGHT);
figure; imshow(J2);
figure; imshow(P2,[],'notruesize');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -