基于matlab运动模糊图像处理的源代码

发布网友 发布时间:2022-04-24 01:35

我来回答

4个回答

热心网友 时间:2022-04-26 21:50

等一会的,我来帮你

华东师范大学???

tuxianghuanyuan('3.jpg', 80, 8, 0.02);


function tuxianghuanyuan(im, a, b, NSPR)

i = imread(im);

f = im2double(i);

PSF = fspecial('motion', a, b);

frest1 = deconvwnr(f, PSF, NSPR);

subplot(221),imshow(f); title('原图像');

subplot(222),imshow(frest1); title('维纳滤波处理后图像'); 

end

热心网友 时间:2022-04-26 23:08

PSF = fspecial('motion',len,ang); %建立扩散子,其中len是模糊长度,ang是模糊角度
img2=deconvlucy(img,PSF,n); %用lucy-richardson方法复原图像,其中img是运动模糊图像,PSF是扩散子,n是迭代次数,img2是复原图像

热心网友 时间:2022-04-27 00:43

可用于求模糊方向。。可参考网页链接    网页链接

%% 读入并显示图像
filename = '112.jpg';
I = imread(filename);
% figure
% imshow(uint8(I));
% title('原图');
%% 生成运动模糊图像
PSF = fspecial('motion',20,10);
g = imfilter(I, PSF, 'circular');
% figure
% imshow(uint8(g));
% title('运动模糊图');
%% 对运动模糊图像进行灰度化,并进行二维快速傅里叶变换,生成其频谱图
gb = rgb2gray(g);
I=im2double(gb);
F=fft2(I);
F=fftshift(F);
imshow(F);
F=abs(F);
t=log(F+1);
figure;
imshow(t,[]);
%% 用canny算子将压缩居中后的频谱图进行边缘检测,二值化
T = graythresh(t);
bw=edge(t, 'canny', T);
imshow(bw);
title('边缘检测后的图');
%% 对二值化后的频谱图进行radon变换
theta = 1:180;
[R,xp]= radon(bw, theta);
%% 计算出通过radon变换求出的模糊角度
MAX = max(max(R));
[m, n] = find(R == MAX);
[M,N] = size(F);
beita =atan(tan(n*pi/180)*M/N)*180/pi; %beita为模糊方向

热心网友 时间:2022-04-27 02:34

我也想知道怎么求PSF 你知道怎么弄了吗?求讲解

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com