图像复原与重建MATLAB实验

这篇具有很好参考价值的文章主要介绍了图像复原与重建MATLAB实验。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、实验目的

  1. 了解一些常用随机噪声的生成方法。
  2. 掌握根据指定退化函数对图像进行退化的方法。
  3. 掌握当模糊图像只存在噪声时的几种滤波复原方法。
  4. 掌握当模糊图像同时存在线性退化和噪声时的几种滤波复原方法。

二、实验内容

1. 噪声图像及其直方图。

图1显示了一幅测试图像,它由简单的恒定区域组成,且其从黑到近似于白仅有3个灰度级增长跨度,非常适合于对附加在图像上的各种噪声成分特性的视觉分析。请进行以下操作:
(1) 对图1叠加高斯噪声,参数 a = 0 a=0 a=0 b = 0.02 b=0.02 b=0.02 ,并求含噪声图像的直方图。
(2) 对图1叠加瑞利噪声,参数 a = 0 a=0 a=0 b = 0.01 b=0.01 b=0.01 ,并求含噪声图像的直方图。
(3) 对图1叠加爱尔兰噪声,参数 a = 25 a=25 a=25 b = 2 b=2 b=2 ,并求含噪声图像的直方图。
(4) 对图1叠加指数噪声,参数 a = 25 a=25 a=25,并求含噪声图像的直方图。
(5) 对图1叠加均匀噪声,参数 a = 0 a=0 a=0 b = 0.15 b=0.15 b=0.15 ,并求含噪声图像的直方图。
(6) 对图1叠加椒盐噪声,参数 a = 0.05 a=0.05 a=0.05 b = 0.05 b=0.05 b=0.05 ,并求含噪声图像的直方图。提示:加椒盐噪声时,要结合find函数。找出生成的噪声R中值为0的点,将原图像中相应位置置0;找出生成的噪声R中值为1的点,将原图像中相应位置置1,以完成椒盐噪声的添加。

图像复原与重建MATLAB实验

f=imread('1.测试图像.tif');
f=im2double(f);
[M,N]=size(f);
R1=imnoise2('gaussian',M,N,0,0.02);
y1=f+R1;
figure; subplot(251);imshow(y1);subplot(256);imhist(y1);
imwrite(y1,'加高斯噪声后的图像.tif');

%---------------rayleigh噪声-----------------------------%

R2=imnoise2('rayleigh', M,N,0,0.01);
y2=f+R2;
subplot(252);imshow(y2);subplot(257);imhist(y2);
imwrite(y2,'加高斯噪声后的图像.tif');

%--------------------伽马(爱尔兰)噪声-----------------------------%
R3=imnoise2('erlang',M,N,25,2);
y3=f+R3;
subplot(253);imshow(y3);subplot(258);imhist(y3);
imwrite(y3,'加伽马(爱尔兰)噪声后的图像.tif');

%--------------------指数噪声-----------------------------%

R4=imnoise2('exponential',M,N,25);
y4=f+R4;
subplot(254);imshow(y4);subplot(259);imhist(y4);
imwrite(y4,'加指数噪声后的图像.tif');

%--------------------均匀噪声-----------------------------%

R5=imnoise2('uniform',M,N,0,0.15);
y5=f+R5;
subplot(255);imshow(y5);subplot(2,5,10);imhist(y5);
imwrite(y5,'加均匀噪声后的图像.tif');

图像复原与重建MATLAB实验

%--------------------椒盐噪声-----------------------------%
R6=imnoise2('salt & pepper',M,N,0.05,0.05);
p=find(R6==0);
y6=f;
y6(p)=0.01;
s=find(R6==1);
y6(s)=0.99;
y6=im2uint8(y6);
figure; imshow(y6);
figure;imshow(y6);imhist(y6)

图像复原与重建MATLAB实验

2. 空间噪声滤波器。

图2是一幅被加性均匀噪声和椒盐噪声污染的图像,请进行以下实验:
(1) 用大小为 5 × 5 5\times 5 5×5 的算术平均滤波器对图2进行滤波。
(2) 用大小为 5 × 5 5\times 5 5×5 的几何均值滤波器对图2进行滤波。
(3) 用大小为 5 × 5 5\times 5 5×5 的中值滤波器对图2进行滤波。
(4) 用大小为 5 × 5 5\times 5 5×5 d = 6 d=6 d=6 的修正阿尔法均值滤波器对图2进行滤波。

图像复原与重建MATLAB实验

答:
(1)
(2)

gp = zeros(M+4, N+4);
gp(3:M+2,3:N+2) = f;

gp(1,:) = gp(3,:); %用图像最外层的值扩展
gp(2,:) = gp(3,:);
gp(M+4,:)=gp(M+2,:);
gp(M+3,:)=gp(M+2,:);
gp(:,2)=gp(:,3);
gp(:,1)=gp(:,3);
gp(:,N+4)=gp(:,N+2);
gp(:,N+3)=gp(:,N+2);

g2 = zeros(M, N);
for x = 3:M+2
    for y = 3:N+2
        g_gmf = 1;
        for i = -2:2
            for j = -2:2
                g_gmf = g_gmf*gp(x+i,y+j);
            end
        end
        g2(x-2,y-2)=g_gmf;
    end
end
g2=g2.^(1/9);
g2=im2uint8(g2);
figure; imshow(g2);
imwrite(g2,'5×5 几何均值滤波图像.tif');

图像复原与重建MATLAB实验

% 1. 读取图像
img = imread('2.被加性均匀噪声和椒盐噪声污染的图像.tif');

% 2. 检查图像是否为彩色图像,如果是,则将其转换为灰度图像
if ndims(img) == 3
    img_gray = rgb2gray(img);
else
    img_gray = img;
end

% 3. 对灰度图像应用5x5中值滤波器
filtered_img = medfilt2(img_gray, [5, 5]);

% 4. 显示原始图像和处理后的图像
figure;
subplot(1, 2, 1);
imshow(img_gray);
title('Original Image');

subplot(1, 2, 2);
imshow(filtered_img);
title('Filtered Image with Median Filter');

% 5. 保存处理后的图像
imwrite(filtered_img, 'output_image.jpg');

图像复原与重建MATLAB实验

% 1. 读取图像
img = imread('input_image.jpg');

% 2. 检查图像是否为彩色图像,如果是,则将其转换为灰度图像
if ndims(img) == 3
    img_gray = rgb2gray(img);
else
    img_gray = img;
end

% 3. 对灰度图像应用5x5修正阿尔法均值滤波器 (d = 6)
filtered_img = modified_alpha_trimmed_mean_filter(img_gray, 5, 6);

% 4. 显示原始图像和处理后的图像
figure;
subplot(1, 2, 1);
imshow(img_gray);
title('Original Image');

subplot(1, 2, 2);
imshow(filtered_img);
title('Filtered Image with Modified Alpha-trimmed Mean Filter');

% 5. 保存处理后的图像
imwrite(filtered_img, 'output_image.jpg');

function output_img = modified_alpha_trimmed_mean_filter(img, filter_size, d)
    img = double(img);
    [rows, cols] = size(img);
    output_img = zeros(rows, cols);

    pad_size = floor(filter_size / 2);
    padded_img = padarray(img, [pad_size pad_size], 'replicate');
    
    for i = 1:rows
        for j = 1:cols
            window = padded_img(i:i+filter_size-1, j:j+filter_size-1);
            window_sorted = sort(window(:));
            output_img(i, j) = mean(window_sorted(d/2 + 1:end - d/2));
        end
    end
    
    output_img = uint8(output_img);
end

图像复原与重建MATLAB实验

3. 逆滤波。

图3为一幅大小为480×480的模糊图像,其退化函数如式(1)所示:
H ( u , v ) = e − k [ ( u − M / 2 ) 2 + ( v − N / 2 ) 2 ] 5 / 6 (1) H(u,v)={{\text{e}}^{-k{{[{{(u-M/2)}^{2}}+{{(v-N/2)}^{2}}]}^{5/6}}}}\tag1 H(u,v)=ek[(uM/2)2+(vN/2)2]5/6(1)

其中, k = 0.0025 k=0.0025 k=0.0025 M = N = 480 M=N=480 M=N=480。请根据式(2)及以下要求对图3图像进行逆滤波操作:
F ^ ( u , v ) = G ( u , v ) H ( u , v ) (2) \hat{F}(u,v)=\frac{G(u,v)}{H(u,v)}\tag2 F^(u,v)=H(u,v)G(u,v)(2)

(1) 请对图3直接进行逆滤波(全滤波)。

(2) 使用一个阶数为10的巴特沃斯低通函数来对比值 G ( u , v ) H ( u , v ) \frac{G(u,v)}{H(u,v)} H(u,v)G(u,v) 实现截止,截止半径分别设置为40、70和85。

(3) 对比分析实验结果。

图像复原与重建MATLAB实验
答:
(1)

close all; clear all; clc;
f = imread('3.大小为480×480的模糊图像.tif');
figure; imshow(f);
f=im2double(f);
[M, N] = size(f);
F= fft2(f);
Fc=fftshift(F);
[v, u]=meshgrid(1:N, 1:M);
H=exp(-0.0025*((u-M/2).^2+(v-N/2).^2).^(5/6));
G=Fc./(H+eps);
G1=ifftshift(G);
g1=ifft2(G1);
figure; imshow(g1, []);

图像复原与重建MATLAB实验
(2)

%---------截止半径设置为 40---------%
H2= zeros(M,N);
D0 = 40;
for x = 1:1:M
    for y = 1:1:N
        D = ((x-M/2)^2 + (y-N/2)^2)^(0.5);
        H2(x,y) = 1/(1+(D/D0)^20);
    end
end
G2=G.*H2;
G2=ifftshift(G2);
g2=ifft2(G2);
subplot(131); imshow(g2, []);title('截止半径为40');

%---------截止半径设置为 70---------%
H2= zeros(M,N);
D0 = 70;
for x = 1:1:M
    for y = 1:1:N
        D = ((x-M/2)^2 + (y-N/2)^2)^(0.5);
        H2(x,y) = 1/(1+(D/D0)^20);
    end
end
G2=G.*H2;
G2=ifftshift(G2);
g2=ifft2(G2);
subplot(132); imshow(g2, []);title('截止半径为70');


%---------截止半径设置为 85---------%
H2= zeros(M,N);
D0 = 85;
for x = 1:1:M
    for y = 1:1:N
        D = ((x-M/2)^2 + (y-N/2)^2)^(0.5);
        H2(x,y) = 1/(1+(D/D0)^20);
    end
end
G2=G.*H2;
G2=ifftshift(G2);
g2=ifft2(G2);
subplot(133); imshow(g2, []);title('截止半径为85');

图像复原与重建MATLAB实验

(3)
当退化函数为0或者是很小的值,直接使用逆滤波公式会导致 N ( u , v ) / H ( u , v ) N\left( u,v \right)/H\left( u,v \right) N(u,v)/H(u,v) F ∧   ( u , v ) \overset{\wedge }{\mathop{F}}\,(u,v) F(u,v) 起到支配作用。频域率转变为空间域就会产生错误的结果。文章来源地址https://www.toymoban.com/news/detail-452225.html

到了这里,关于图像复原与重建MATLAB实验的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • (数字图像处理MATLAB+Python)第八章图像复原-第一、二节:图像复原概述和图像退化模型

    图像复原 :在图像生成、记录、传输过程中,由于成像系统、设备或外在的干扰,会导致图像质量下降,称为 图像退化 ,如大气扰动效应、光学系统的像差、物体运动造成的模糊、几何失真等。图像复原是指通过使用图像处理技术来恢复受损图像的原始信息,使其尽可能接

    2024年02月12日
    浏览(72)
  • 图像复原方法(matlab)

    图像复原的常用方法主要包括:逆滤波复原、维纳滤波复原、约束最小二乘法复原、Lucy-Richardson复原和盲解卷积复原。 逆滤波复原 f(x,y)表示输入图像,即为理想没有退化的图像,g(x,y)时退化后观察得到的图像,n(x,y)为加性噪声。通过傅里叶变换到频域后为:G(u,v) = F(u,v)H(u,

    2024年02月04日
    浏览(28)
  • (数字图像处理MATLAB+Python)第八章图像复原-第五、六节:盲去卷积复原和几何失真校正

    盲去卷积复原 :当我们考虑图像复原中的盲去卷积复原时,我们可以使用以下数学符号和方程来描述该问题 原始图像 :我们用I表示原始图像,其中I是一个二维离散函数。 I ( x , y ) I(x, y) I ( x , y ) 表示在坐标 ( x , y ) (x, y) ( x , y ) 处的图像强度值 模糊核 :我们用 H H H 表示未

    2024年02月04日
    浏览(59)
  • 130基于MATLAB并结合IBD算法的盲迭代反卷积法进行图像复原

    基于MATLAB并结合IBD算法的盲迭代反卷积法进行图像复原 ,输出复原前后图像,PSF频谱结果。程序已调通,可直接运行。 130 matlab盲迭代反卷积IBD (xiaohongshu.com)  

    2024年02月01日
    浏览(32)
  • 【三维重建】之 matlab读取 .wrl 三维图像文件

    wrl(虚拟现实语言): wrl文件是一种虚拟现实文本格式文件。也是VRML的场景模型文件的扩展名。 wrl文件是纯ASCII文件,所以可以用文本编辑器打开和编辑。虽然这样,但是对于大型的3D文件。用纯手工的方法是不可取的。应该选择用三维软件(maya,max等)进行场景建模和输出。

    2024年02月17日
    浏览(51)
  • 用 MATLAB 实现的计算机CT断层扫描图像重建项目源码

    计算机断层扫描图像重建 介绍 计算机断层扫描是堆叠在一起的 X 射线图像的集合,以获得作为诊断图像第三维的深度信息。这些 “ 堆叠的 ” X 射线图像作为正弦图从 CT 机架接收,代表对象单层的 X 射线吸收剖面。该项目的目标是重建该单层的原始 2D 图像,并使用光衰减信

    2024年02月04日
    浏览(44)
  • 基于自适应曲线阈值和非局部稀疏正则化的压缩感知图像复原研究【自适应曲线阈值去除加性稳态白/有色高斯噪声】(Matlab代码实现)

     💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码实现 文献来

    2024年02月13日
    浏览(47)
  • 【MATLAB】图像分割实验

    充分利用所学各种图像处理技术,实现对图像的综合处理,加深对基础知识的理解和应用。 (1)将已知图像进行消噪处理; (2)对彩色图像进行目标和背景分析; (3)自编多种分割算法(其中必须包含:最大类间分割、基于迭代的阈值分割、基于Hough变换、基于kmeans分割

    2024年02月04日
    浏览(37)
  • MATLAB 图像平滑实验

    什么都无法舍弃的人,什么都无法得到。——《进击的巨人》 1.按照下面步骤完成空域图像平滑,比较分析 1)相同滤波方法,不同模版的处理效果;2)相同模版,不同滤波方法的处理效果。 (1) 对一幅图像“girl.bmp”添加不同种类噪声:对给定的图像添加均值为 0,方差为

    2024年02月04日
    浏览(34)
  • 【数字图像处理】实验三 图像分割(MATLAB实现)

    目录 一、实验意义及目的 二、实验内容 三、Matlab 相关函数介绍 四、算法原理 五、参考代码及扩展代码流程图 (1)参考代码流程图 (2)扩展代码流程图 六、参考代码 七、实验要求 (1)尝试不同的阈值选择方法,实现灰度图像二值化 (2)变换参数实现形态学滤波,查看滤波

    2024年02月05日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包