现代数字图像处理作业———对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图像加入脉冲噪声导致原图的结构遭到了破坏,高斯和中值滤波都是线性滤波器,会带入很多的噪声进行计算,从而使得效果变得越加的不理想,而中值滤波是非线性滤波器,对噪声的依赖较低,所以它的滤波效果要明显的优于另外两种的滤波效果。

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Maven打包三种方法和常用命令大全

    Maven打包三种方法和常用命令大全目录maven常用打包命令1方法一:使用maven-jar-plugin和maven-dependency-plugin插件打包2方法二:使用maven-assembly-plugin插件打包在pom.xml中配置:3方法三:使用maven-shade-plugin插件打包在pom.xml中配置:maven常用打包命令1、mvncompile编译,将Java源程…

  • 查看Linux内核版本的命令_查看redhat版本命令

    查看Linux内核版本的命令_查看redhat版本命令有朋友在使用Linux的过程中要查看Linux的内核版本号,这要怎么看呢?也有朋友文要怎么查看linux系统版本信息呢?下面和小编一起了解一下吧。一、查看linux内核版本号1:登录linux,在终端输入cat/proc/version2:登录linux,在终端输入uname-a即列出linux的内核版本号。二、查看linux系统版本信息1:登录到linux服务器执行lsb_rele…

    2022年10月13日
  • 2021ArchLinux安装图文教程「建议收藏」

    2021ArchLinux安装图文教程「建议收藏」主要为以下步骤:1.下载ArchLinux安装镜像并制作U盘启动工具2.开机从U盘启动3.进行联网4.编辑镜像站文件(选择一个比较快的中国镜像源)5.开始分区(UEFI+GPT)6.格式化分区,并挂载7.开始安装基本操作系统8.配置基础系统9.引导系统10.用户管理11.网络配置12.安装桌面环境13.安装完后的工作开始:1.下…

  • 第二:Pycharm设置配置(非常详细)「建议收藏」

    第二:Pycharm设置配置(非常详细)「建议收藏」1、汉化:把resources_zh.jar拷贝到PyCharm的安装目录下的lib目录,重启Pycharm即可。(resources_zh.jar汉化包关注本账号获取:链接:https://pan.baidu.com/s/1JCpTloWnQdQ8ShsUt-Qabg提取码:i7pu)如果打开后显示乱码,请先删除resources_cn.jar,然后打开pycharm2017,在菜单上依次选择File->Settings->Appearance&Behavior

  • Oracle 正则表达式以及常用正则函数

    Oracle 正则表达式以及常用正则函数Oracle正则表达式以及常用函数正则表达式简介正则表达式基础Oracle常用函数正则表达式简介菜鸟教程练习网站1练习网站2练习网站3练习网站4软件下载什么是正则表达式?正则表达式,又称规则表达式。(英语:RegularExpression,在代码中简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。什么时候会用到正则表达式?数据验证字符串查找字符串替换正则表达式基础元字符描述

  • 拦截器,过滤器,监听器执行顺序(被拦截个人过滤器)

    拦截器(Interceptor)和过滤器(Filter)的执行顺序和区别

发表回复

您的电子邮箱地址不会被公开。

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