现代数字图像处理作业———对lena图像进行简单处理[通俗易懂]

现代数字图像处理作业———对lena图像进行简单处理[通俗易懂]对lena图像加入椒盐噪声,强度为30%,分别采用均值滤波,中值滤波进行处理。并讨论不同尺度的模板对结果的影响。

大家好,又见面了,我是你们的朋友全栈君。

作业题目:

对lena图像加入椒盐噪声,强度为30%,分别采用均值滤波,中值滤波进行处理。并讨论不同尺度的模板对结果的影响。

作业代码及内容展示和分析:

##lena加入椒盐噪声效果图

1、噪声强度为5%

现代数字图像处理作业———对lena图像进行简单处理[通俗易懂]

2、噪声强度为30%

 现代数字图像处理作业———对lena图像进行简单处理[通俗易懂]

代码展示:

import cv2 as cv

import random as rd

import matplotlib.pyplot as plt

lena = cv.imread(‘lena.jpeg’,0)

def saltNoise_image(im,var):                   #生成椒盐噪声图函数

    w,h = im.shape

    saltNoiseNum = int(w*h*var)                #噪声总的点数

    for i in range(saltNoiseNum):              #在图像找n个点加入噪声

        x = rd.choice(range(w))

        y = rd.choice(range(h))

        if im[x,y] < 127:

           im[x,y] = 255

        else:

           im[x,y] = 0

    return im

def filterImage(im):                          #滤波函数

    im = cv.cvtColor(im,cv.COLOR_BGR2RGB)

    ksize = [3,5,7]

    im_filter = [[cv.blur(im,(i,i)),           #均值滤波

               cv.medianBlur(im,i),           #中值滤波

               cv.GaussianBlur(im,(i,i),0,0)] #高斯滤波

                for i in ksize]

    plt.figure(‘滤波结果’)                     #创建窗口

    x = 0

    for i in range(3):

        for j in range(3):

           x += 1

           plt.subplot(3,3,x)                 #生成9个子窗口

           plt.imshow(im_filter[j][i]),plt.axis(‘off’) #显示图像

    plt.tight_layout(0,0.1,0)

    plt.show()

new_lena = saltNoise_image(lena,0.3)           #传入图片和噪声比例

filterImage(new_lena)                          #滤波

(1)采用卷积子大小为[3,5,7],噪声强度为5%,采用中值、均值、高斯滤波,其效果图如下:

现代数字图像处理作业———对lena图像进行简单处理[通俗易懂]

(2)采用卷积子大小为[3,5,7],噪声强度为30%,采用中值、均值、高斯滤波,其效果图如下:现代数字图像处理作业———对lena图像进行简单处理[通俗易懂]

分析:

    当对lena图像加入脉冲噪声时,不管强度是5%还是30%,所采用的中值和高斯滤波的效果都不理想,而采用中值滤波的效果却有明显的改善;且当卷积由3→5→7增大时,去除噪声干扰的效果越好,但是相对而说图像变得更加的模糊,丢失了更多的细节。由于对lena图像加入脉冲噪声导致原图的结构遭到了破坏,高斯和中值滤波都是线性滤波器,会带入很多的噪声进行计算,从而使得效果变得越加的不理想,而中值滤波是非线性滤波器,对噪声的依赖较低,所以它的滤波效果要明显的优于另外两种的滤波效果。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/150962.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • memwatch

    memwatch一、简介memwatch可以跟踪程序中的内存泄漏和错误,能检测双重释放(double-free)、错误释放(erroneousfree)、没有释放的内存(unfreedmemory)、溢出(Ov

    2022年7月4日
    33
  • linux查看ttys0的设置_centos查看文件内容的命令是

    linux查看ttys0的设置_centos查看文件内容的命令是准备工具0.下载ttylinux系统。http://minimalinux.org/ttylinux/downloadX86.html(ttylinux-i686-11.1.iso.gz)(bootcd-i386-5.3.iso.gz)1.下载thttpd。(一)ttylinux安装(ttylinux-i686-11.1.iso)1.将ttylinux-i686-11.1.iso.gz解压t…

    2022年8月12日
    5
  • rider 2022 激活码【2022免费激活】

    (rider 2022 激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html1TCF2R91JZ-eyJsaWNlbnNlSW…

    2022年3月31日
    2.6K
  • Git的下载安装 (图文教程)

    Git的下载安装 (图文教程)git的下载安装目录git的下载git的安装步骤git的下载如果你还没有下载Git,可直接到git官网进行下载。如图直接按下Downloads选项这是页面会跳转到相应的页面按下Windows或DownloadforWindows选项,页面会自动跳转下载页面,当然其它系统类型根据需要下载相应的版本即可。下载完成双击运行点击运行…

    2022年5月27日
    72
  • 【网络】子网划分题目解析[通俗易懂]

    【网络】子网划分题目解析[通俗易懂]【网络】子网划分题目解题过程步骤一:划分分公司子网步骤二:划分分公司部门子网题目某集团公司,全国共设立12家分公司,每家分公司有4个部分组成,现在公司需要组建企业内部网络,总公司申请一个IP:172.16.0.0/16,试为该集团公司IP分配做出合理规划解题过程步骤一:划分分公司子网“全国共设立12家分公司”根据这句话可以明白至少要划分12个分公司子网,就需要我们查找2n≥12,依题意得24=16≥12,因此网络位向主机位借取4位,也就是用原有的16+4=20,那么子网掩码就是/20即2

    2022年6月27日
    26
  • RewriteCond 重写规则执行条件

    RewriteCond 重写规则执行条件RewriteCond重写规则执行条件语法:RewriteCondTestStringCondPattern生效域:serverconfig,virtualhost,directory,.htaccess特别的上面的TestString,可提供反向引用.引用模式为:%N其中N为(0<=N<=9),引用当前若干RewriteCo…

    2022年5月7日
    34

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号