【医学图像处理】4 图像去噪/平滑

1 图像噪声

  噪声的产生: 图像中间某些像素发生突变,造成与周围像素之间不和谐
  去噪: 用和谐的点替换掉不和谐的点。对灰度值的变化做均一化。
  去噪的方法:
  (1)基于卷积的方法:高斯滤波、均值滤波…
  (2)基于形态学的运算:开、闭运算…

1.1 椒盐噪声

  椒盐噪声:也称为脉冲噪声,是图像处理中常见的一种噪声,它是一种随机出现的白点或黑点。
在这里插入图片描述

1.2 高斯噪声

  高斯噪声:是指噪声的(灰度值)密度函数服从高斯分布。
在这里插入图片描述
在这里插入图片描述

2 图像去噪/滤波/平滑

  
  
  
  

2.1 高斯滤波

  高斯核:
在这里插入图片描述
  越接近中心,取值越大,越远离中心,取值越小。计算高斯平滑结果时,只需要将中心点作为原点,其他点按照其在正态分布曲线上的位置,分配权重,就可以得到一个加权平均值。
  高斯滤波的作用:
  (1)高斯滤波对图像进行了平滑或模糊的操作,模糊的强度是由高斯的标准方差σ决定的,标准方差越大,对图像的平滑越大,方差越小,对图像的模糊程度越小。
  (2)高斯滤波是一个平均操作,对高斯核覆盖的像素点的灰度值的平均,给中间的点给予更多的权重的平均。 使得中间的点具有更多的权重,周围点具有较低的权重。能够很好的保留原来图像的属性。

  API: cv2.GaussianBlur(src,ksize,sigmax,sigmaY=None, borderType=None)
  参数:
    src:输入图像
    ksize:高斯卷积核大小,注意卷积核的宽度和高度都应该为奇数,且可以不同
    sigmax:水平方向的标准差
    sigmay:垂直方向的标准差,默认为0,表示与sigmax相同
    borderType:填充边界类型

import cv2
import matplotlib.pyplot as plt
import numpy as np
#1. 读取图像
img1=cv2.imread('blur_sp.png')#椒盐噪声的图像
img2=cv2.imread('blur_gs.png')#高斯噪声的图像

#2.高斯滤波
img_blur1=cv2.GaussianBlur(img2,(3,3),sigmaX=1)
#3.显示图像
cv2.imshow('origin',img2)
cv2.imshow('blur_jiaoyan',img_blur1)
cv2.waitKey(0)

在这里插入图片描述

2.2 均值滤波

  均值滤波核:
在这里插入图片描述
  均值滤波核覆盖的每个像素点或得到了相同权重。采用均值滤波模板,对图像中的噪声进行去除——卷积框覆盖区域所有像素的平均值来代替中心元素。这种平均操作不能很好保持图像本来的属性,将图像变得异常模糊。
  API: cv2.blur(src,ksize,anchor=None, borderType=None)
  参数:
    src:输入图像
    ksize:卷积核大小
    anchor:默认值(-1,-1)表示核中心
    borderType:边界类型

import cv2
import matplotlib.pyplot as plt
import numpy as np
#1. 读取图像
img1=cv2.imread('blur_sp.png')#椒盐噪声的图像
img2=cv2.imread('blur_gs.png')#高斯噪声的图像

#2.均值滤波
img_blur1=cv2.blur(img1,(5,5))
#3.显示图像
cv2.imshow('origin',img1)
cv2.imshow('blur_jiaoyan',img_blur1)
cv2.waitKey(0)

在这里插入图片描述

2.3 中值滤波

  中值滤波核: 对核覆盖的像素灰度值做排序,取中值作为最终结果。中值滤波是一种典型的非线性滤波技术,基本思想是 用像素点邻域灰度值的中值来替代该像素点的灰度值。
在这里插入图片描述
emsp; 特点: 对椒盐噪声尤其有用,因为他不依赖邻域内那些典型值差别很大的值
  API: cv2.medianBlur(src,ksize)
    src:输入图像
    ksize:卷积核大小

import cv2
import matplotlib.pyplot as plt
import numpy as np
#1. 读取图像
img1=cv2.imread('blur_sp.png')#椒盐噪声的图像
img2=cv2.imread('blur_gs.png')#高斯噪声的图像

#2.均值滤波

img_blur1=cv2.medianBlur(img1,3)
#3.显示图像
cv2.imshow('origin',img1)
cv2.imshow('blur_jiaoyan',img_blur1)
cv2.waitKey(0)

在这里插入图片描述
  中值滤波的效果不如高斯滤波核均值滤波,但是运算速度快。

  • 1
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值