计算机视觉 OpenCV Android | 图像操作之 统计排序滤波、边缘保留滤波

1.统计排序滤波

上节笔记中提到的均值模糊、高斯模糊两种图像模糊操作都属于图像的线性滤波
本文则首先将笔记OpenCV中存在的几种基于统计排序的滤波器

  • 中值滤波
    最大值最小值滤波

  • 这几种滤波器在特定场合与应用场景下,也经常用来(划重点,对应滤波的作用!!!
    消除图像噪声
    (中值滤波可以抑制椒盐噪声;
    最大值滤波可以填充小的闭合区域以及狭窄的间断;
    最小值滤波可以去除小的图像噪声或者图像元素对象的大小丝黏连)
    或者抑制图像像素极小值与极大值最大值最小值滤波)。

1.1.中值滤波
  • 中值滤波同样也需要一个卷积核
    与卷积滤波不同的是,它不会用卷积核的每个系数与对应的像素值做算术计算
    而是把对应的像素值做排序取中间值作为输出。
  • 具体说明如图所示:
    9125154-f8bcdaba3e7cf4ce.png
  • 线性滤波是一个自带有/设置有系数的“实”模板
  • 中值滤波是有一个只有滤波特性,没有设置系数“空”模板
  • 运算逻辑顺序概况:
    “空”模板移动,套/捞与模板重合的N×N个像素值上来,
    对套上来的值排序,取中值;
    置回模板核中心格子下重合的像素块;

中值滤波的相关API函数处于Imgproc包中,完整的说明如下:

  • medianBlur(Mat src, Mat dst, int ksize)
    src:表示输入图像,
      当ksize3、5的时候输入图像可以为浮点数或者整数类型
      当ksize大于5的时候,则只能为字节类型图像,即CV_8UC
    dst:表示中值滤波以后输出的图像,其类型与输入图像保持一致
    ksize:表示上图中模板的大小,
    常见为3、5,注意模板大小必须为奇数而且必须大于1

调用此函数实现中值滤波的相关代码如下:

Mat src = Imgcodecs.imread(fileUri.getPath());
if(src.empty()){
  return;
}
Mat dst = new Mat();
Imgproc.medianBlur(src, dst, 5);
划重点!!!
  • 中值滤波对图像的椒盐噪声很明显的抑制作用,是一个很好的图像降噪的滤波函数
!!!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凌川江雪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值