QQ登录

只需要一步,快速开始

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

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

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

1186

主题

4

听众

2922

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-12-9 17:16 |只看该作者 |正序浏览
|招呼Ta 关注Ta
这段代码主要展示了图像处理的一系列步骤,包括图像读取、添加噪声、去噪、图像锐化、直方图均衡化以及边缘检测。
5 S* F) u$ H+ O' f VeryCapture_20231209165431.jpg : |% ~2 m! d1 P) J5 ?6 p
1.读取图像:
  1.    I=imread('1.jpg');5 l6 Q; e8 _& V

  2. ! [3 R2 M) N; B# j
  3.    try+ W8 H7 J- J6 O2 e- M0 F6 K
  4. 0 J. ^% d! N) d9 s+ y: O
  5.        I=rgb2gray(I);4 O2 g2 J3 l4 ^

  6. 4 }5 G3 n6 H2 K3 `6 E& [
  7.    end
复制代码
这里首先读取名为 "1.jpg" 的图像文件。然后,使用 rgb2gray 函数将彩色图像转换为灰度图像,但由于可能出现错误(比如图像本身就是灰度图像),用了 try 和 end 来捕获并处理这个潜在的错误。/ ~. u& Q1 c6 G" s3 o& G. B
$ F9 q9 H0 e/ ^' |4 b  S/ a) C% ^8 ]
2.添加椒盐噪声:
  1.    I=imnoise(I,'salt & pepper',0.04);
复制代码
使用 imnoise 函数向图像中添加密度为 0.04 的椒盐噪声。6 j4 c% a" P$ m7 x

' P( G* V' V& U3.显示原始图像:
  1.    figure3 P' D$ Q0 I! \
  2. 3 b& |8 w\" O2 B; Y7 S1 f& w
  3.    imshow(I)
    \" T5 J, d4 \/ e

  4. 7 E+ [3 a6 O! Q
  5.    title('原图')
复制代码
通过 imshow 函数显示添加噪声后的原始图像。6 I" i2 u! ~3 j3 [
! H8 s; t: A, \  V+ Q; F
4.图像去噪:
  1.    I=medfilt2(I,[2 4]);
复制代码
使用 medfilt2 函数对受椒盐噪声干扰的图像进行中值滤波去噪处理。
7 f9 n8 T" l+ }3 p) a; V, f- R1 N3 B4 X% [
5.图像锐化:
  1.   [M,N]=size(I);' e\" S/ ]% h$ L$ K& `
  2. ) Z) f3 t; @) ^& V! p9 o
  3.    f=double(I);! r\" j9 s, {\" l\" Q7 @. t# J& g7 Y% F; N

  4. \" s4 X/ r0 }- _- C
  5.    g=fft2(f);
    & G- T2 \+ B1 U. w) |
  6. 0 u( ]( t/ X& }* a7 I: r
  7.    g=fftshift(g);, @4 u2 z  n% |; V/ n* y  ^

  8. ( P7 f6 \0 H5 I: f2 |. t3 {
  9.    n=2;3 [% U1 l; @3 f$ I# O) t7 [
  10.   |' l0 _* j, J! u\" ~  O
  11.    D0=3;8 w3 r% E4 r! A2 X6 P6 q* V
  12. # W8 _4 [( a\" @1 X% d. W9 S1 K
  13.    for i=1:M
    & E7 s4 f3 T5 M5 T1 g

  14. 2 D$ F, F: L* R' |\" j( M
  15.        for j=1:N
    , O4 j9 C6 K0 \1 B5 `
  16. . Z8 `% W- a0 B2 ]* }1 Z  [
  17.            % 省略了对频域信号进行巴特沃斯滤波的操作
    4 _) l) m, S/ Y: r0 F, M
  18. 9 N5 {& w  E5 Q; z1 i. S. v# c
  19.            % 这部分代码主要是在频域进行滤波处理以实现图像的锐化* [; C. ?. R% O7 o$ M9 d

  20. 5 \  v; \! Y6 a\" p2 n, n+ T3 Z9 O3 L
  21.        end
    & A5 Y% ?/ g7 l0 N' K/ A

  22. - r# Y5 \, j* j2 |: ~( ?5 I$ B
  23.    end
    7 @% i' i& {4 j; z4 e

  24. : P2 _7 b7 E# k- k( }( Q9 [
  25.    result=ifftshift(output);
    1 A) g1 ]9 E& R) F$ m8 ~. T

  26. 0 @% r% P1 t) {) [4 y6 S
  27.    I=ifft2(result);
    ' F\" {6 B! p0 i4 q0 t  c- K6 D* x
  28. 8 J/ G9 m9 @$ [& I3 i
  29.    I=uint8(real(I));
复制代码
这一部分通过傅立叶变换、频域处理(采用了巴特沃斯滤波器)以及反变换实现图像的锐化操作。
& ~0 i( q3 d0 k8 q$ q0 p6 h# y5 H2 B6 Y2 |+ B1 `1 `
6.直方图均衡化:
  1.    I=histeq(I);
复制代码
使用 histeq 函数对图像进行直方图均衡化处理,以增强图像的对比度和亮度分布。" l/ b# @: z4 V6 g

( `: S4 S0 O0 R- n7.边缘检测:
  1.    I1=edge(I,'prewitt');
    & v) V! x8 {! U. f; z$ U( n6 k0 k

  2. : K8 B' [& A7 |8 z- v- ^\" ]8 @
  3.    I2=edge(I,'roberts');
    ! g, ]  V  L) {
  4. ) T$ q% ~  [/ P9 t/ Y
  5.    I3=edge(I,'sobel');
复制代码
使用不同的边缘检测算子(Prewitt、Roberts、Sobel)对经过处理后的图像进行边缘检测,产生三幅不同的边缘强度图像。
3 V( B# F& |9 T9 x这段代码展示了图像处理领域中常见的一些基本操作,包括噪声处理、滤波、频域处理、直方图均衡化以及边缘检测。% M, E: Z  O+ L
! @" y! b$ W5 d2 D" x( O! B6 ~: e
% y$ d* _4 ~* K1 G. s& s4 c
9 z% L+ |- B& |

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-4-12 09:10 , Processed in 0.603833 second(s), 55 queries .

回顶部