现代数字图像处理作业———对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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 十大经典武侠小说[通俗易懂]

    孤枕侧畔,一灯如豆,看尽万千红尘旧事刀枪入梦,剑气漫天,重温多少江湖恩仇    一说起武侠小说,每个像我这么大的男性或是比我小一些的男性都会眉飞色舞的侃上半天,仿佛每个人都是此中高手,但是武侠小说浩如烟海,能称得上作家的也多如牛毛,故高手或是低手之分并不在于看得多少,而在于精的程度。我之所以谈起这些来就不由得总是有些洋洋自得,便是因为我觉得自己看武侠小说既精又多,称得上此中高手,所

    2022年4月17日
    122
  • xml中注释快捷键_如何快速取消注释程序代码

    xml中注释快捷键_如何快速取消注释程序代码eclipse中编辑Java文件时,注释快捷键和取消注释快捷键都是:”CTRL+/”编辑xml文件时,注释:CTRL+SHIFT+/  取消注释:CTRL+SHIFT+\

    2022年8月15日
    2
  • 【Cover Letter 】SCI 投稿加分必备,手把手教你写 投稿Cover Letter

    【Cover Letter 】SCI 投稿加分必备,手把手教你写 投稿Cover LetterCoverLetter是我们投稿时,与手稿一同发送给编辑的投稿信。一封内容简洁的投稿信,会让编辑对你文章的第一印象加分不少。今天,我们一起来学习一下,一篇给文章加分的投稿信应该怎么写。投稿信的内容主要包含文章的标题、类型,没有一稿多投的声明,文章的主要内容及亮点,还有通讯作者的信息。敲黑板!一篇投稿信最重要的两点,是语言简洁和符合期刊标准。所以,要想写好投稿信,我们务必要了解各…

    2022年4月30日
    55
  • poj1146

    poj1146题目链接:http://poj.org/problem?id=1146题目大意:求一个字符串的后继字符串,即对一个字符串进行字典序排列的后一个!方法:对字符串进行从后向前进行遍历,如果直到找到后面的最大的非递增序列,然后在这个序列中找到比其前面大的最小的一个字母和其交换,再对交换后的后面的部分进行字典序排列再次进行输出即可以拉!#include#includeusingnam

    2022年5月28日
    42
  • Python基础语法知识点汇集「建议收藏」

    Python基础语法知识点汇集「建议收藏」本文小结了phython基础语法文章目录一.注释二.变量的类型三.标识符和关键字四.输出五.输入六.运算符七.数据类型转换一.注释<1>单行注释以#开头,#右边的所有文字当作说明,而不是真正要执行的程序,起辅助说明作用#我是注释,可以在里写一些功能说明之类的哦print(‘helloworld’)<2>多行注释”’我是多行注…

    2022年6月24日
    25
  • sort函数,我用总是莫名其妙的错

    sort函数,我用总是莫名其妙的错

    2021年9月27日
    68

发表回复

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

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