QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2853|回复: 0
打印 上一主题 下一主题

MATLAB实现图像去噪 滤波 锐化 边缘检测

[复制链接]
字体大小: 正常 放大

1189

主题

4

听众

2934

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-12-9 17:16 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
这段代码主要展示了图像处理的一系列步骤,包括图像读取、添加噪声、去噪、图像锐化、直方图均衡化以及边缘检测。; ^# u- d, D3 k
VeryCapture_20231209165431.jpg
$ o/ h# @8 [. Z7 U! a* T1.读取图像:
  1.    I=imread('1.jpg');( n; g  \0 h% P/ K, r
  2. ' S$ Q- F  \- _; u, Y3 j$ }; L
  3.    try
    # L. {) H- f3 f) `! ^2 _: x
  4. : u\" E8 [2 @* X+ q( @! U* |3 o& N
  5.        I=rgb2gray(I);# a: g/ o  P1 J1 s  t7 r. l* L
  6. % C, J3 `1 g' Z, L& \2 P
  7.    end
复制代码
这里首先读取名为 "1.jpg" 的图像文件。然后,使用 rgb2gray 函数将彩色图像转换为灰度图像,但由于可能出现错误(比如图像本身就是灰度图像),用了 try 和 end 来捕获并处理这个潜在的错误。, k, ~( d* H" X$ \  t

0 N; w5 V) }) ^: ]- @/ |/ k# u1 T2.添加椒盐噪声:
  1.    I=imnoise(I,'salt & pepper',0.04);
复制代码
使用 imnoise 函数向图像中添加密度为 0.04 的椒盐噪声。' G3 v2 |6 ~$ u" x: y. S2 H1 ?( ^
5 j, y" @3 b3 `
3.显示原始图像:
  1.    figure0 C& P0 {# u' I2 V\" h) K6 a

  2. ' g% m; E* s, Q: L( y1 c
  3.    imshow(I)
    6 P2 @- k/ e0 G5 \5 B/ }
  4. & j# O7 g# O4 K- m/ f
  5.    title('原图')
复制代码
通过 imshow 函数显示添加噪声后的原始图像。6 C5 |( J2 V# c; w

+ e* m8 n: |% s4.图像去噪:
  1.    I=medfilt2(I,[2 4]);
复制代码
使用 medfilt2 函数对受椒盐噪声干扰的图像进行中值滤波去噪处理。+ U5 G3 C* }6 j3 E, C; p0 R2 i9 ?

9 |& C/ X( W% e4 A( b8 B# r5.图像锐化:
  1.   [M,N]=size(I);
    8 p. G6 Q& P6 c

  2. * V6 l) N# `, H2 U% x
  3.    f=double(I);* t  p) d: z9 q, I
  4. 5 \0 _5 `9 R, {: J9 }' U
  5.    g=fft2(f);6 K. d& t6 N/ ~1 W# F9 ^: E+ g\" w

  6.   q0 c/ @% `( ]! _
  7.    g=fftshift(g);! N\" X! p# B, x! }\" O7 Y( w

  8. ! q2 C: ^& u( ^) k
  9.    n=2;* H# A9 x, v% W, d. r4 h- P8 Q! K8 N
  10. 2 H2 @$ V, Z+ h0 n' x
  11.    D0=3;5 Q- w' \, P* j2 q# X7 Z% G. o\" V. C
  12. 8 D6 C( B. T& k+ p$ ~0 L. G
  13.    for i=1:M
    \" R, {5 h9 u3 x% _
  14. \" W! b6 I4 f% m3 I' |! n\" o
  15.        for j=1:N
    , f2 [4 u% E# c1 `  |* [  M7 z0 y\" M
  16. \" k9 N$ M\" d9 e  H
  17.            % 省略了对频域信号进行巴特沃斯滤波的操作
    ) x0 Z8 c2 [\" q1 c( j' {

  18. # ]7 U0 ~7 S6 L  ^
  19.            % 这部分代码主要是在频域进行滤波处理以实现图像的锐化9 y& Y$ @6 z# B$ Q  i- ?+ A( i$ k
  20. - h- C4 m  F( B: ]! M
  21.        end
    7 D# `* M$ l2 }- l' U
  22. , |/ {7 `- t8 h( X/ X
  23.    end, N/ R2 B. U4 x

  24. 2 i1 A\" p: I6 R8 Z% ~4 U
  25.    result=ifftshift(output);* f$ \% N0 s0 V# W: S/ [9 G- [
  26. ) E5 @\" w7 R% m8 m. e1 l
  27.    I=ifft2(result);
    ( V) ~  N) q  U* T: g2 j2 ~

  28. $ c) ?8 s- F- i! r8 z
  29.    I=uint8(real(I));
复制代码
这一部分通过傅立叶变换、频域处理(采用了巴特沃斯滤波器)以及反变换实现图像的锐化操作。5 ~  |% v# s" F2 h: ]& H
* P; {1 Q7 S' ^+ B
6.直方图均衡化:
  1.    I=histeq(I);
复制代码
使用 histeq 函数对图像进行直方图均衡化处理,以增强图像的对比度和亮度分布。! M9 O# D  v; D
, n3 C9 \/ l9 Y* O7 d& f* e
7.边缘检测:
  1.    I1=edge(I,'prewitt');. X) y1 n8 p0 W: K

  2. ) K4 J1 A, Q6 f& i
  3.    I2=edge(I,'roberts');
    % l1 j2 h( r6 n' u% s6 |\" G9 w: c

  4. - c+ _% {: f- X  X
  5.    I3=edge(I,'sobel');
复制代码
使用不同的边缘检测算子(Prewitt、Roberts、Sobel)对经过处理后的图像进行边缘检测,产生三幅不同的边缘强度图像。
. R( ], g9 |9 ?  e8 m+ t% {4 F这段代码展示了图像处理领域中常见的一些基本操作,包括噪声处理、滤波、频域处理、直方图均衡化以及边缘检测。
% j3 o$ L2 f. W- _
% k/ a2 f; @6 N: x# y3 U
* \4 b1 k( h, Z3 D) @& z% q" ~6 a$ D: [* l8 u1 B7 z

MATLAB实现图像去噪 滤波 锐化 边缘检测 源程序代码.rar

6.65 KB, 下载次数: 0, 下载积分: 体力 -2 点

售价: 2 点体力  [记录]  [购买]

zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
您需要登录后才可以回帖 登录 | 注册地址

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2026-7-10 16:58 , Processed in 0.655537 second(s), 55 queries .

回顶部