关闭

matlab图像复原

标签: matlab
1296人阅读 评论(0) 收藏 举报
分类:

目录

1. 频谱噪声分析

在进行图像复原之前,首先对各个图像做傅里叶变换在频谱中观察分布情况,由此判断噪声或模糊类型。

i1=imread('1.png');
i2=imread('2.jpg');
i3=imread('3.jpg');
i4=imread('statBlur.jpg');
o1=fftshift(fft2(rgb2gray(i1)));o2=fftshift(fft2(rgb2gray(i2)));
o3=fftshift(fft2(rgb2gray(i3)));o4=fftshift(fft2(rgb2gray(i4)));
figure,subplot(221),imshow(i1),subplot(222),imshow(o1),subplot(223),imshow(i2),...?????
subplot(224),imshow(o2);
figure,subplot(221),imshow(i3),subplot(222),imshow(o3),subplot(223),imshow(i4),...?????
subplot(224),imshow(o4);

这里写图片描述

2. 四幅图像分别处理

首先分析佛像图像是否具有噪声,在图像中较为平坦均匀出选取矩形,做直方图处理,观察直方图的分布来确
定是否含有噪声以及噪声的类型。

im=imread('statBlur.jpg');[m,n,h]=size(im);
f11=ones(190,162,3);f22=ones(130,130,3);f33=ones(100,100,3);f44=ones(70,70,3);
for i=1:190
    for j=1:162
        for k=1:3
            f11(i,j,k)=im(i,j,k);
        end
    end
end


for i=1:130
    for j=501:630
        for k=1:3
            f22(i,j-500,k)=im(i,j,k);
        end
    end
end

for i=721:870
    for j=11:170
        for k=1:3
            f33(i-720,j-10,k)=im(i,j,k);
        end
    end
end

for i=761:830 
    for j=561:630
        for k=1:3
f44(i-760,j-560,k)=im(i,j,k);
        end
    end
end
figure,subplot(221),hist(f11,100),subplot(222),hist(f22,100),subplot(223),...?
hist(f33,100),subplot(224),hist(f44,100);

3.大气湍流处理

函数代码如下:

function output=daqituan( image ,k)
k=0.00011
%函数daqituan?对输入的图像进行大气湍流处理?
%参数image????输入的待处理图像?
%参数k????????大气湍流模型常数
i=fft2(double(image));
G=fftshift(i);
[m,n,h]=size(i);
H=zeros(m,n);
for i=1:m
    for j=1:n
if sqrt((i-m/2)^2+(j-n/2)^2)<100
    H(i,j)=exp(-k*(i^2+j^2)^(5/6));
end
    end
end

for i=1:3
out
(:,:,i)=G(:,:,i).*H;
end
out=real(ifft2(ifftshift(out)));
figure,subplot(121),imshow(image),title('原始图像'),subplot(122),...?????
    imshow(out,[]),title('大气湍流复原图像');
end

参考资料

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:6221次
    • 积分:389
    • 等级:
    • 排名:千里之外
    • 原创:32篇
    • 转载:1篇
    • 译文:0篇
    • 评论:6条
    最新评论