1、退化程序
clc;
clear all;
close all;
I=imread('F:\mmw\B1\图2.jpg');%读图
figure;
subplot(4,3,1);
imshow(I);
title('原图像');
LEN=30;%运动长度30
THETA=30;%运动角度30
% LEN=60;
% THETA=60;
n=2;
for i=1:3
for j=1:3
PSF=fspecial('motion',LEN*i,THETA*j);%退化并研究运动角度和长度对图片模糊程度的影响
PSF=fspecial('motion',LEN,THETA);
Blurred=imfilter(I,PSF,'circular','conv');
subplot(4,3,n);
imshow(uint8(Blurred));
title('模糊化');
hold on
n=n+1;
end
end
%imwrite(Blurred,'模糊∠60长60.png');%保存图
2、运动角度的求解
%求解模糊运动角度matlab代码
close all;clc;clear all;
im=imread('F:\mmw\B1\模糊∠60长60.png');
img_gray=rgb2gray(im);%灰度化
img_fft=fftshift(fft2(img_gray));
N=abs(img_fft);
P=(N-min(min(N)))/(max(max(N))-min(min(N)))*225;
figure;
imshow(P);
title('频谱图(运动角度与光斑方向垂直)');
len=35;
theta=0;
PSF=fspecial('motion',len,theta);
B=imfilter(img_gray,PSF,'circular','conv');