QQ登录

只需要一步,快速开始

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

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

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

1189

主题

4

听众

2934

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-12-9 17:16 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
这段代码主要展示了图像处理的一系列步骤,包括图像读取、添加噪声、去噪、图像锐化、直方图均衡化以及边缘检测。
9 C1 ]# O7 o  @- {- z% }: ?4 r VeryCapture_20231209165431.jpg
+ V. O2 ~* V( i( _2 N. u1.读取图像:
  1.    I=imread('1.jpg');
    , M+ e- ~- r& r: P5 C

  2. & Q0 Z1 d, C: o2 M+ b
  3.    try1 K. Y( d* X; Y

  4. & H  y6 U1 B: Y8 @, ]
  5.        I=rgb2gray(I);
    & z7 b; m; t; W& O
  6. \" ~5 p9 ]2 X7 y0 `; W
  7.    end
复制代码
这里首先读取名为 "1.jpg" 的图像文件。然后,使用 rgb2gray 函数将彩色图像转换为灰度图像,但由于可能出现错误(比如图像本身就是灰度图像),用了 try 和 end 来捕获并处理这个潜在的错误。
1 }( B1 ?9 E# _, t0 t$ |  I& I; I+ Y! \% E3 [8 C& a
2.添加椒盐噪声:
  1.    I=imnoise(I,'salt & pepper',0.04);
复制代码
使用 imnoise 函数向图像中添加密度为 0.04 的椒盐噪声。, S  d0 z: b- k0 W7 T7 J3 H
) P: ]- E* N1 W. ?3 P, ^6 ^
3.显示原始图像:
  1.    figure
    - w5 c$ ~2 e/ u4 y$ P4 ]8 v3 ~
  2. / \  L& c/ k1 R9 U4 h6 M4 k8 w
  3.    imshow(I)
    0 V* b' D5 d7 X

  4. 3 K5 S/ P& q$ d
  5.    title('原图')
复制代码
通过 imshow 函数显示添加噪声后的原始图像。
- B' H7 p! n$ L; y3 d) h7 b
$ N6 }4 H2 F. ?+ r- o" s6 U' C, {4.图像去噪:
  1.    I=medfilt2(I,[2 4]);
复制代码
使用 medfilt2 函数对受椒盐噪声干扰的图像进行中值滤波去噪处理。: l7 l$ V9 y8 ?3 F" Q

! f& H% l+ C1 y4 [  c: u1 e5.图像锐化:
  1.   [M,N]=size(I);
      k. c! Y2 q9 K6 J6 s6 a
  2. + K7 ?. [7 M) h. G7 Z1 [
  3.    f=double(I);\" _* u4 V$ I8 d
  4. & T$ h5 y: F, c+ B+ u. R
  5.    g=fft2(f);5 X8 b- Q0 H# n2 N' \' i: G
  6. % s, i+ ~& i# b+ o
  7.    g=fftshift(g);
    & d2 \/ I\" Y9 V8 g! E+ r& I7 A+ c
  8. ! |% A0 e( ?; K! J, R& _1 O
  9.    n=2;, T. E: V2 G0 u8 ?
  10. $ L( S  Y1 f3 l+ t
  11.    D0=3;
    3 A* A7 k9 J: S) H6 R8 \

  12. 9 I6 R, y; D3 ~+ F8 `
  13.    for i=1:M+ D) M. I/ @6 R

  14. 3 n# t7 x/ s! d
  15.        for j=1:N; K( Y4 m4 |& l
  16. 0 {; {) R* a$ p0 }; s  ]4 G! F
  17.            % 省略了对频域信号进行巴特沃斯滤波的操作- b% _; k- D+ y5 E' a

  18. + x2 ?- f\" Q\" |1 m9 ]
  19.            % 这部分代码主要是在频域进行滤波处理以实现图像的锐化. [7 O0 u% D6 k  W8 k: Q- @

  20.   v1 c4 t- q9 |  P& M/ H7 K; U7 q. o
  21.        end
    3 t\" E( N7 k1 m' V9 B; b

  22. ; V( {! X0 d3 M: H; Y- f\" \
  23.    end
    # _6 A4 g) Q! x' c0 r7 n* U4 |
  24. 4 K9 z0 Y1 K# F/ Z; {\" |
  25.    result=ifftshift(output);
    1 R# {& L\" m6 h5 R+ Y& R) T\" b
  26. % Y1 z\" M8 Q, O# [
  27.    I=ifft2(result);
    , E5 g( t, x# w! I: O

  28. : z: p- ^  u+ v7 W
  29.    I=uint8(real(I));
复制代码
这一部分通过傅立叶变换、频域处理(采用了巴特沃斯滤波器)以及反变换实现图像的锐化操作。
) t. X6 G5 l; y: i" I, M" Q5 V8 p" }# {5 L9 g! X
6.直方图均衡化:
  1.    I=histeq(I);
复制代码
使用 histeq 函数对图像进行直方图均衡化处理,以增强图像的对比度和亮度分布。1 H( J5 ]8 {! X( J! K
! R+ k+ v7 B& ?3 x0 z5 o
7.边缘检测:
  1.    I1=edge(I,'prewitt');) T7 s6 @+ u9 v0 O
  2. 6 j/ f' D# G* d: @' _+ n
  3.    I2=edge(I,'roberts');. J: I4 |& _\" b( q

  4. . `0 V) ~+ s6 e2 w\" [
  5.    I3=edge(I,'sobel');
复制代码
使用不同的边缘检测算子(Prewitt、Roberts、Sobel)对经过处理后的图像进行边缘检测,产生三幅不同的边缘强度图像。2 w: |; S$ N0 j7 {7 O# t
这段代码展示了图像处理领域中常见的一些基本操作,包括噪声处理、滤波、频域处理、直方图均衡化以及边缘检测。$ P" o+ @. t* M/ y' \

: ?% x8 V9 E5 L
. W) z5 p8 x/ ~* u8 A/ y6 H
5 E8 Q4 L  u. {6 m/ u

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 13:15 , Processed in 0.462700 second(s), 55 queries .

回顶部