QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 4362|回复: 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
    5 ~6 s( r! X: H9 H
    图像的加噪与去噪(python)高斯噪声(Gaussiannoise)和椒盐噪声(salt-and-peppernoise)均可通过Python库:skimage实现。5 L0 b5 U9 e7 p$ z+ c" k

    $ f4 A5 Q( ?, y3 b#import os              #import语句的作用是用来导入模块,可以出现在程序任何位置. Z) I' o( z6 ?) j" l
    import cv2 as cv        #导入openCV库
    & I! ?5 x0 C2 e, t+ gimport skimage          #导入skimage模块.scikit-image是一个图像处理算法的集合。它是基于scipy的一款图像处理包,它将图片作为numpy数组进行处理,方便进行后续运算。
    0 [" p' V' v) T$ m5 w                        #必须首先安装numpy,scipy,matplotlib' u8 m# d+ r! [) O; O9 z; ~
    import numpy as np      #导入numpy模块。numpy是python扩展程序库,支持数组和矩阵运算,针对数组运算提供大量数学函数库。6 e0 J5 R% c# H; ^* o: ^' \  K
    1 `; c* A( m1 x! A% }. F5 p( h
    / i4 e2 T6 M% ?$ P7 h9 m5 r
    def boxBlur(img):
    % q6 p3 M* N& q6 k0 y    # 使用5x5的滤波核进行平滑% b8 t- T9 G4 e/ D: f+ \( A5 X
        blur = cv.boxFilter(img,-1,(5, 5))   
    . o) M) ^. m, ]2 q/ V    return blur7 S' }9 V- b  }' B

      W! d+ k: _3 Z) _9 O( A0 L0 R, ?8 C; @
    def gaussianBlur(img):
    0 o8 ?' ?5 [9 u7 }, p( z# M    #     使用高斯核进行平滑
      b3 r1 N# b' p' F$ y    blur = cv.GaussianBlur(img,(5, 5),1.5)$ k+ W6 r% E- e! M9 c* w
        return blur
    ! ~' L7 I) p0 g# h2 Z
    * L! B9 b! W6 S* W& O. W9 C: y+ B, q& e$ Q( ?1 t( K
    def main():
    - {+ U7 |( F& X- ]4 H; \; M    # 2. 定义图片类img% C) P$ ]5 ~/ Y7 R) }
        path = r"C:\Users\98238\Desktop\Lenna.jpg"! k, o& }! }6 P+ ~
        img = cv.imread(path)
    7 y% b3 Q! G. x$ N    start_t = cv.getTickCount()
    " S0 Q) ^# d1 i) b% [+ S% w- ]. e# u- l    # 5. 加噪声,绘图
    % A; F# s5 u, C; ]5 i2 C    ##############################################33 V$ p" ]* J# J- ?
        # add gaussian noise6 C/ h: D$ ?# a/ t3 v
    7 o- l9 m  R2 g, h' A/ c4 w
        gauss_noiseImg = skimage.util.random_noise(img, mode='gaussian')# 添加10%的高斯噪声
    3 F/ d- v6 t& B# x% z    gauss_noiseImg=gauss_noiseImg
    ; t  L* L1 s$ k% G    salt_noiseImg = skimage.util.random_noise(img, mode='salt')  # 添加椒盐噪声
    1 \8 Z2 L' Z& M1 {9 I6 s/ o" g  J$ x, P& [( j, {8 U
        lb_gauss=cv.medianBlur(gauss_noiseImg.astype('float32'), 1)#中值滤波
      K; x1 ?0 W7 f2 G; m2 t7 a8 C4 k) {1 ]& t
        lb_salt=cv.medianBlur(salt_noiseImg.astype('float32'), 1)#中值滤波
    7 [! q% [$ y8 m3 _& O/ A& [    print(gauss_noiseImg.dtype, "gaussian noisy image dtype")#输出一个注释7 e2 o: i2 L3 W# M
        print(gauss_noiseImg.shape, "gaussian noisy image shape")#输出一个注释
    7 a/ X7 O4 `" G, O% V2 U! k- K
        print(salt_noiseImg.dtype, "salt noisy image dtype")#输出一个注释5 k5 s' y! p4 O) X& H  D
        print(salt_noiseImg.shape, "salt noisy image shape")#输出一个注释
    0 h# m. @8 s, K5 X: {
    8 }7 L% w4 s5 m" {& k' N
    4 A6 i) x5 r! }* P; n5 u    cv.namedWindow("Original Image", cv.WINDOW_NORMAL)#输出原图片的标题
    4 T* V! O1 c+ j0 j    cv.imshow('Original Image', img)#输出原图片
    . G* Y8 U" ^2 T. w+ l6 z9 e# B# W5 @! n% f& l
        # Gaussian noisy image, p! y* b: P  l  g, D
        cv.namedWindow("Added Gaussian Noise Image", cv.WINDOW_NORMAL)#输出高斯噪声图片的标题
    1 y7 l  m6 E4 C* y! E7 p" J    cv.imshow('Added Gaussian Noise Image', gauss_noiseImg)#输出高斯噪声图片: K) ?  y4 w, j$ F8 V
    + S  Q4 ]0 U4 I& E) g
        # Salt noisy image
    ' S/ g% X! j% ]3 G    cv.namedWindow("Added Salt Noise Image", cv.WINDOW_NORMAL)#输出椒盐噪声图片的标题
    ' _6 B. H( _1 S    cv.imshow('Added Salt Noise Image', salt_noiseImg)#输出椒盐噪声图片1 u" c! {; ]: u9 Z- ?
    . S$ N5 M. z  H, ^$ G/ c
        #滤波后的图像: |8 t6 i1 X. ^* l2 D6 b5 }5 T$ B
        cv.namedWindow("lbguass Image", cv.WINDOW_NORMAL)#输出滤波后高斯噪声图片标题
    2 @- i& J( l- J* v% L    cv.imshow('lbguass Image', lb_gauss)#输出滤波后高斯噪声图片
    # a+ U& o1 |0 Z  S1 h% S: @! u    cv.namedWindow("lbsalt Image", cv.WINDOW_NORMAL)#输出滤波后椒盐噪声图片标题& S" y; J* C( l& s9 |  d: H
        cv.imshow('lbsalt Image', lb_salt)#输出滤波后椒盐噪声图片# h4 g$ ^, z  d8 U

    , X" ]0 k' d0 u' P5 z5 b! s( o    #####################################################
    ) b$ v  r* ?. @: A1 C" b% x$ x' B/ u8 ~  u$ c' D% y
        stop_t = ((cv.getTickCount() - start_t) / cv.getTickFrequency()) * 1000#运行时间
    ) @# o% E4 |# s2 |* e
    / ]/ Q6 [( G0 `    print(stop_t, "ms")#输出时间并加上单位5 o3 j, f  W" c- p- E1 m

    4 a$ m0 _* S6 N3 ^7 U    cv.waitKey(0)" q" d+ ~  v8 H) D
        cv.destroyAllWindows()5 ~. e0 t, `4 t- f8 d

    8 b; e" D* l! ^( ?7 g% e0 _3 `, _) N+ `
    if __name__ == "__main__":
    $ w$ r1 f9 ?$ r$ j/ x    main()
    0 H9 \0 b+ O0 L0 U, c: H  T4 X; v2 U& H* E4 ~, F2 a
    原图如下& Q1 T- n! q2 @7 Q* f6 C; }! q" }: L
    4 ^& V; x8 R8 _2 A) g
    1.png
    / ^, D' z% k( E/ }0 I7 ^
    " ]4 S8 D  `1 Q0 D0 n

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

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

    2.png
    , L% n! z# D+ c+ O' T) e0 M
    ! J  a3 d5 D! A9 A添加椒盐后的图片
    " m' R, t* Q7 g# k/ X
    % e0 M: _  {& w0 U- h$ m+ x 3.png
    7 [5 N4 M: K9 {' q2 }% O, f, Y: y. p( Q8 S1 e! u0 M) Z
    使用中值滤波3滤波后的高斯噪声图
    + h/ h& s/ R0 g 4.png
    7 N& y" o( C5 W  P3 I' X  a, }: {
    % H: [  V0 ~! h- v3 b" _使用中值滤波3滤波后的椒盐噪声图2 v9 c8 }. _0 }; A- l) T
    5.png
    & F% `. p$ F/ D5 t( N, K+ b4 g  y; V/ K# B! E
    改用中值滤波5 滤波滤波后的高斯噪声图
    . T4 ~0 I( B, b( v) _- b5 N' q- c8 R  q6 |- R
    6.png . K* x' M/ t6 s4 l, ~  b
      z+ n7 Z3 p, X1 F
    滤波后的椒盐噪声图" a" V0 T( Z/ H: H4 u+ L) h: _9 ^
    + e: p! w1 B5 T/ G; [
    7.png
    + F. D, I5 r, f; s  A, Z4 x* s
    $ e8 J# ]- g8 c- H- _) p2 X% F结论:& X7 H7 l! r  D1 ]4 ^2 Z$ T* e1 @
    经过中值滤波5的滤波后噪声比中值滤波3滤波后的图像少,但是图像也更模糊一些。
    " L8 q; B5 w! z5 A+ n+ Q& t. X) j# p
    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-5-26 00:41 , Processed in 0.407149 second(s), 54 queries .

    回顶部