QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 4399|回复: 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

    % w0 E- L: [( N% ^+ l图像的加噪与去噪(python)高斯噪声(Gaussiannoise)和椒盐噪声(salt-and-peppernoise)均可通过Python库:skimage实现。! c/ w6 Z4 l! h: E

    # ?* _. [: D! A7 f. T#import os              #import语句的作用是用来导入模块,可以出现在程序任何位置, Q/ b9 T4 K1 \2 [- ~0 ]
    import cv2 as cv        #导入openCV库0 C3 n) ^7 n( P3 P
    import skimage          #导入skimage模块.scikit-image是一个图像处理算法的集合。它是基于scipy的一款图像处理包,它将图片作为numpy数组进行处理,方便进行后续运算。1 x7 G% j# T: h
                            #必须首先安装numpy,scipy,matplotlib
    # G6 w) A% ^4 K' b$ z# wimport numpy as np      #导入numpy模块。numpy是python扩展程序库,支持数组和矩阵运算,针对数组运算提供大量数学函数库。
    9 o4 u& I5 x6 p& H: J
    4 @2 j. q5 U" r  A9 Z
    9 P* Z% ]) y9 j6 y3 Xdef boxBlur(img):
    ( n$ h5 q6 l/ c( A    # 使用5x5的滤波核进行平滑
    5 E4 y2 T: R  s0 ~; o    blur = cv.boxFilter(img,-1,(5, 5))      J; x. K" ]+ H: r! p
        return blur1 h0 S" m0 X" G; [) K, D
    0 Y; i. H1 m: P1 h" v
    % h4 @& |! Z0 \1 n  W" F7 t( F
    def gaussianBlur(img):7 M8 }6 w  w  S0 u+ W8 G8 E! O+ t
        #     使用高斯核进行平滑) [/ T+ A7 X( e6 _9 P
        blur = cv.GaussianBlur(img,(5, 5),1.5)2 b/ z+ Y8 Z: Z6 \' \
        return blur
    3 L  ^: j$ j% t% U) ]( G. W  V) |7 C+ d/ A

    . F0 O/ Q3 m( z( cdef main():
    / m8 @; A9 }: {6 e- m6 B# t    # 2. 定义图片类img
    * F& _7 c8 {# g% N7 ]7 m# [! r    path = r"C:\Users\98238\Desktop\Lenna.jpg"% I6 X+ I/ l: ]- a& z5 h
        img = cv.imread(path)4 B2 t0 k5 Z) i  {- R4 P+ L
        start_t = cv.getTickCount()
    8 k' P% i& d) W3 T! @+ e    # 5. 加噪声,绘图) ^! k5 m8 h; S$ v4 p/ p$ I4 t
        ##############################################3
    4 V: _* m; D9 q7 B' V    # add gaussian noise) ]' ~7 e7 Z$ N$ o, ]
    & W5 Y/ y. t: `
        gauss_noiseImg = skimage.util.random_noise(img, mode='gaussian')# 添加10%的高斯噪声
    7 v& X/ V/ _& g+ {8 y6 \, r) z* n    gauss_noiseImg=gauss_noiseImg
    ! X( q5 J; n9 _2 `    salt_noiseImg = skimage.util.random_noise(img, mode='salt')  # 添加椒盐噪声3 ~8 r) {$ W& U* x' ]
    ) E- n! }+ `' y6 \
        lb_gauss=cv.medianBlur(gauss_noiseImg.astype('float32'), 1)#中值滤波
    9 L" V: t! C" `* j/ d7 C9 b0 k  h0 w( P, |/ T: G4 w) A& l
        lb_salt=cv.medianBlur(salt_noiseImg.astype('float32'), 1)#中值滤波
    + f" b$ @# c; ]( O3 n9 \    print(gauss_noiseImg.dtype, "gaussian noisy image dtype")#输出一个注释& ~- t% \  b& |0 G/ h1 E
        print(gauss_noiseImg.shape, "gaussian noisy image shape")#输出一个注释
    9 D+ p0 C/ b( x: `, _
    & E5 n. W/ m. b& H6 A: S$ P    print(salt_noiseImg.dtype, "salt noisy image dtype")#输出一个注释
    / y2 y6 T2 V. w; f& E3 f; ^9 [5 A    print(salt_noiseImg.shape, "salt noisy image shape")#输出一个注释1 \1 f/ i" p  A* |! N

    7 d) y6 ?. v" P+ ?: o3 n
    : H7 V& n' b4 {0 B+ n    cv.namedWindow("Original Image", cv.WINDOW_NORMAL)#输出原图片的标题
    " Z2 t$ `4 `- U/ n0 Q9 O0 e    cv.imshow('Original Image', img)#输出原图片$ O5 c' L! K+ V( Z0 `! G, d
    " {  k9 _$ ^; n6 Y/ \
        # Gaussian noisy image
    $ f9 f5 ]  v; ?/ P2 c& \+ H* m    cv.namedWindow("Added Gaussian Noise Image", cv.WINDOW_NORMAL)#输出高斯噪声图片的标题4 d& g# y3 K' F, M" {- t6 n! k1 y
        cv.imshow('Added Gaussian Noise Image', gauss_noiseImg)#输出高斯噪声图片
    6 ]/ E% |( ^: \
    ; f$ S% l; ^7 y+ v  a$ W    # Salt noisy image
    : S1 F8 u1 b8 L% T9 L$ d    cv.namedWindow("Added Salt Noise Image", cv.WINDOW_NORMAL)#输出椒盐噪声图片的标题! Z+ t" s$ \' q; c) |
        cv.imshow('Added Salt Noise Image', salt_noiseImg)#输出椒盐噪声图片* C( _. K8 V( Z2 ?, H; f( f2 N
    ! P) K& g3 X! m
        #滤波后的图像( y  r% o0 A3 w" {
        cv.namedWindow("lbguass Image", cv.WINDOW_NORMAL)#输出滤波后高斯噪声图片标题2 l6 h! C- p+ W' d1 L
        cv.imshow('lbguass Image', lb_gauss)#输出滤波后高斯噪声图片+ j( b6 m8 _% r3 }
        cv.namedWindow("lbsalt Image", cv.WINDOW_NORMAL)#输出滤波后椒盐噪声图片标题
    4 Z/ h+ h) a( G3 q3 p3 {    cv.imshow('lbsalt Image', lb_salt)#输出滤波后椒盐噪声图片
    - j6 ?' y' J( }9 t2 y  p. v  ^/ H$ Z" O9 K
        #####################################################/ D2 n3 N; A3 R% Q  q1 g
    : D. ^6 }. l. F( c  b1 R
        stop_t = ((cv.getTickCount() - start_t) / cv.getTickFrequency()) * 1000#运行时间; z7 @& A* s; V' F) X8 j

    7 K- Z3 ]# G* D% g0 F3 g    print(stop_t, "ms")#输出时间并加上单位6 i9 l" }4 ^, [1 X' G6 C1 `' _

    9 b9 D9 Y- o5 y) Z8 Q    cv.waitKey(0)
    ' o  g# u) b$ Z& _) L    cv.destroyAllWindows()
    ) M. r5 k$ Z' V  ]: h' v$ ?" W, v( w+ J) q7 [' @

    ; s( o  m( v% N$ D' bif __name__ == "__main__":" H& V% z& Q/ a8 Z. j
        main()
    / S" M9 w* S, t# a4 U, z5 o$ [9 I
    2 s. L1 D8 V% X& ^- D& |5 ]原图如下  Z5 a2 a6 Q' F0 t3 y, ?

    ' h$ U" k8 n# b( `4 }: C/ q 1.png
    7 O* W: u7 C' i3 Y! o( l: L& ~. J9 \6 R; a& f  T+ C

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

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

    2.png
    ; \( K3 w. {: j
    % j  ]: G. o& _& _6 L0 J$ ~% {! D添加椒盐后的图片
    ' a- H& e4 y' b* P
    2 s" W- s6 q' e! D, n4 y 3.png 8 X" O( ^5 V# L2 A

    ( M) E7 V5 o6 {使用中值滤波3滤波后的高斯噪声图
    4 Z( Z" u, a- |% J 4.png 5 [# A2 k5 J. P: E

    : E* @9 @: f" h/ K& o使用中值滤波3滤波后的椒盐噪声图
    ' i. u7 Q0 Q& z. s2 A0 y 5.png
    / d% ^, q# D" B% s% p+ R% t" w& ?4 f1 n. B% w
    改用中值滤波5 滤波滤波后的高斯噪声图
    ; K) N2 t& ?# q: u5 C, e4 C5 k( q" H/ a1 T. f
    6.png
    " B6 _& b1 N: G/ K0 |7 @" I) N6 Y2 V6 i) R( ?) \
    滤波后的椒盐噪声图7 V3 U* {* {1 f$ K( p

    # T% J( m8 c6 ] 7.png
    ( W6 J8 ]; I" o8 c8 Y! M/ h9 K3 T
    3 \) K: w! q# H. h结论:$ V) u$ Q5 a0 \; O4 \
    经过中值滤波5的滤波后噪声比中值滤波3滤波后的图像少,但是图像也更模糊一些。
    5 b  o7 i+ a& v' j4 \* x! F6 i1 y) o: b1 N) `/ C2 e
    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-29 09:49 , Processed in 0.422736 second(s), 53 queries .

    回顶部