QQ登录

只需要一步,快速开始

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

[参考文献] 图像的加噪与去噪(python)

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

5273

主题

82

听众

17万

积分

  • TA的每日心情
    开心
    2021-8-11 17:59
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    网络挑战赛参赛者

    网络挑战赛参赛者

    自我介绍
    本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。

    群组2018美赛大象算法课程

    群组2018美赛护航培训课程

    群组2019年 数学中国站长建

    群组2019年数据分析师课程

    群组2018年大象老师国赛优

    跳转到指定楼层
    1#
    发表于 2020-4-28 15:43 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    0 y5 p) U" }0 N/ r+ F
    图像的加噪与去噪(python)高斯噪声(Gaussiannoise)和椒盐噪声(salt-and-peppernoise)均可通过Python库:skimage实现。: G9 Z+ A$ ^; ~9 z7 j
    $ p% O6 e) D) A2 \7 O
    #import os              #import语句的作用是用来导入模块,可以出现在程序任何位置
    9 ?0 g, D- F1 O8 t4 [+ _- j/ Uimport cv2 as cv        #导入openCV库
    1 N% r& p, y" ]+ Y4 l: `import skimage          #导入skimage模块.scikit-image是一个图像处理算法的集合。它是基于scipy的一款图像处理包,它将图片作为numpy数组进行处理,方便进行后续运算。% i- Z2 P; n) D7 _! z
                            #必须首先安装numpy,scipy,matplotlib
    6 T/ W9 K9 I; F! l& b+ gimport numpy as np      #导入numpy模块。numpy是python扩展程序库,支持数组和矩阵运算,针对数组运算提供大量数学函数库。/ u# _# H2 h. ]! `/ e
    % k( }0 r. H4 _8 S; w2 K

    3 C3 V8 A) S2 }def boxBlur(img):
    9 `  _: o( r$ ?- i/ N  n  E    # 使用5x5的滤波核进行平滑3 C/ [4 S' a" Z" H* C
        blur = cv.boxFilter(img,-1,(5, 5))   
    # E% \; J7 Q, S! l4 H/ M    return blur* N3 a( r+ o/ m8 R3 r
    + H) A) p& w1 C; M7 F

    , z& S9 E/ u9 H4 v0 Z' mdef gaussianBlur(img):
    ) N5 r* S; ]( _: p/ o    #     使用高斯核进行平滑! ?: \* j, M, u# O0 A& u# d+ ?
        blur = cv.GaussianBlur(img,(5, 5),1.5)# M' S1 G# ?& }6 e
        return blur% }) G7 x( g; u8 H, P+ j

    - t/ B& ~7 v; o9 n) G' I- A# A4 P6 A' e" X1 y
    def main():9 |7 B" L. H# J9 k1 F
        # 2. 定义图片类img" [2 D7 u2 a( Q' a. F9 b; f) a, t; d
        path = r"C:\Users\98238\Desktop\Lenna.jpg"2 d) T9 S2 S, [' D
        img = cv.imread(path)7 U5 a1 D! f, i- \- v
        start_t = cv.getTickCount()) }  D  h4 T/ X  p
        # 5. 加噪声,绘图
    $ j% a- c! F, t' t% u0 |    ##############################################3
    $ V) C1 `, C3 X/ C: w% T' e    # add gaussian noise
    1 m1 `2 ]+ m1 d: ~6 g/ Y
    . q& [7 i" O0 c: s' K: i( m! I    gauss_noiseImg = skimage.util.random_noise(img, mode='gaussian')# 添加10%的高斯噪声+ u1 F% h4 k9 J* g
        gauss_noiseImg=gauss_noiseImg
    " ]. w4 i5 k! [, w- Y2 G: Y# [# e    salt_noiseImg = skimage.util.random_noise(img, mode='salt')  # 添加椒盐噪声
    9 }+ [2 u. i5 Q  w( ], ~5 R9 r7 _. N
        lb_gauss=cv.medianBlur(gauss_noiseImg.astype('float32'), 1)#中值滤波
    0 E, t0 ~8 R7 [3 H5 E
    ; c: P3 Y2 ^' O% V    lb_salt=cv.medianBlur(salt_noiseImg.astype('float32'), 1)#中值滤波
    & e& D/ g$ R* T+ C; v0 Z6 I' I, U: N; J    print(gauss_noiseImg.dtype, "gaussian noisy image dtype")#输出一个注释7 W4 N- H4 P: O2 ~
        print(gauss_noiseImg.shape, "gaussian noisy image shape")#输出一个注释  B" ?- q8 v+ l9 t% M

    # G, U. M0 u5 {4 @6 n    print(salt_noiseImg.dtype, "salt noisy image dtype")#输出一个注释+ B/ y: ^9 O, l4 r3 G% C! f
        print(salt_noiseImg.shape, "salt noisy image shape")#输出一个注释
    - m7 H4 G% q- _  m7 W$ `2 N" m# D0 Z( J5 H

    0 {) |; j2 ^2 L3 X) }' s    cv.namedWindow("Original Image", cv.WINDOW_NORMAL)#输出原图片的标题8 @; |8 ?! n1 ~, Q
        cv.imshow('Original Image', img)#输出原图片8 U5 A  U$ h  N  h; g

    7 m# L) @- K! R! \# t& x- u    # Gaussian noisy image2 E5 q$ b2 w+ W# j* Y3 F, |$ p
        cv.namedWindow("Added Gaussian Noise Image", cv.WINDOW_NORMAL)#输出高斯噪声图片的标题
    2 }; I- @0 u0 X8 U+ A    cv.imshow('Added Gaussian Noise Image', gauss_noiseImg)#输出高斯噪声图片8 Q1 f6 l, e) f" e$ X0 `3 \

    " `1 h! C) L' f, [& \    # Salt noisy image7 c2 }0 ]6 N3 D! f) c8 {7 L  S
        cv.namedWindow("Added Salt Noise Image", cv.WINDOW_NORMAL)#输出椒盐噪声图片的标题
    7 {$ L, J9 J* G9 ~$ M    cv.imshow('Added Salt Noise Image', salt_noiseImg)#输出椒盐噪声图片
    ) \3 }& g2 f. X# p! t( q+ B% m0 f4 I2 i' ]1 R4 m* V- T
        #滤波后的图像
    7 S* @, o* F9 q6 y) O9 q    cv.namedWindow("lbguass Image", cv.WINDOW_NORMAL)#输出滤波后高斯噪声图片标题
    ( Y& N% w/ C6 l) m    cv.imshow('lbguass Image', lb_gauss)#输出滤波后高斯噪声图片) N9 y/ p' k: a! o- v" o
        cv.namedWindow("lbsalt Image", cv.WINDOW_NORMAL)#输出滤波后椒盐噪声图片标题
    ( z9 V* r- f) O3 z    cv.imshow('lbsalt Image', lb_salt)#输出滤波后椒盐噪声图片# g1 n) h6 ?+ N/ V$ q8 d4 i

    & b/ k: m/ m7 r6 r/ Z4 d6 r) `    #####################################################3 z/ {9 D. D) N0 L/ L! n9 m

    3 j& k7 a. R3 T; H4 N8 ^$ n    stop_t = ((cv.getTickCount() - start_t) / cv.getTickFrequency()) * 1000#运行时间6 `, j6 [& H3 ?+ q
    7 Z5 d4 R: A0 {% b% R2 Y$ H$ Z
        print(stop_t, "ms")#输出时间并加上单位
    , ]; \3 g4 h$ a2 E0 X8 U
    / L1 u2 H; z0 i* o6 s( O4 K    cv.waitKey(0)6 R6 E2 R6 C, N
        cv.destroyAllWindows(). W/ F5 y! _/ ^4 O3 Q& @
    + @: x/ f0 h+ n- q" I+ N0 {; f3 U

    , [  d7 Y* S1 Fif __name__ == "__main__":
    7 h% f* w; }; V% G    main()
    6 |" X& D1 p. K& h
    5 F! v! P' ~/ e1 m原图如下# D( D6 \3 w7 g# L; u( C" k6 f0 h

    ! K5 M0 ?6 i: |2 S- O6 V* A 1.png + H% d; g9 }" a

    8 k4 v* M3 U/ x6 G; T- L7 [( z

    使用10%的高斯噪声、椒盐噪声,以及中值滤波为3 结果图如下

    添加10%高斯噪声后的图片

    2.png , C+ C; E) q, H) |/ X+ |

    & x* u9 S/ f; ]" b3 Z) N添加椒盐后的图片
    4 H' U0 U. q) ?$ S  @; F  P4 t* Q, A* _
    3.png
    - u+ C$ z1 @/ ^. S, a& I" K
    / E1 y+ B! r; J  P8 V使用中值滤波3滤波后的高斯噪声图
    4 q+ s! a" L! @ 4.png $ s, b) r  l, Q3 j
    + J! W% _4 A) D2 @
    使用中值滤波3滤波后的椒盐噪声图* k$ E2 F* t5 M% p: W- t' v/ e
    5.png 5 T1 P) M$ j+ u# }7 M8 |

    $ w5 B; b& E& X+ F改用中值滤波5 滤波滤波后的高斯噪声图9 s' h9 S$ t. T% a  y& F. S7 P& K
    - K! ]) _. R3 D( x6 l$ {
    6.png : B! g. Q; Q4 Y/ h( p2 T1 z
    , G1 w7 j4 ^, w# b! C+ X
    滤波后的椒盐噪声图
    - L( I5 r) g' s$ l+ `
    ; K. |7 k7 a5 g3 o; g 7.png & k2 r( t* X& L. c) h  X
    9 K5 v5 Z5 @& Q$ D' P. P# J  K
    结论:1 H2 t7 P) j4 t+ N+ P
    经过中值滤波5的滤波后噪声比中值滤波3滤波后的图像少,但是图像也更模糊一些。
    2 |7 b( w. k- s2 j. q" q2 z' P2 q" d
    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-10 17:26 , Processed in 0.417807 second(s), 54 queries .

    回顶部