opencv学习笔记(三):几种去噪滤波器的实现

本文介绍了在数字图像处理课程中,作者通过编程实践,不依赖OpenCV内置滤波器,手动实现了针对椒盐噪声的算术均值、几何均值、谐波滤波器和中值滤波器。在对比中发现,中值滤波器对于椒盐噪声的去除效果最佳,而随着滤波器模板的增大,虽然噪声更平滑,但图像也会变得更模糊。文章还分享了作者使用Markdown编辑博客的体验和优势。
摘要由CSDN通过智能技术生成

现在在上数字图像处理的课程,最近的一次作业要求不用OpenCV自带的滤波器函数来实现几种滤波器,以实现对加入椒盐噪声的图像的去噪。也是对markdown编辑器的一次练习。

椒盐噪声

椒盐噪声是一种很简单的噪声,即随机将图像中一定数量的像素点设置为0(黑)或255(白)。由于看起来好像在图像上撒了椒盐一样,故被称为椒盐噪声。
下面是椒盐噪声的处理代码(假定输入图像为3通道)

void salt(Mat &image, float salt_ratio){
    int n=image.rows*image.cols*salt_ratio;
    for (int k = 0; k < n; k++)
    {
        int i = rand() % image.cols;  //cols 和 rows 给出图像的宽与高
        int j = rand() % image.rows;
        int type= rand() %2;
        if (type==1){
            image.at<Vec3b>(j, i)[0] = 255;
            image.at<Vec3b>(j, i)[1] = 255;
            image.at<Vec3b>(j, i)[2] = 255;
        }
        else{
            image.at<Vec3b>(j, i)[0] = 0;
            image.at<Vec3b>(j, i)[1] = 0;
            image.at<Vec3b>(j, i)[2] = 0;
        }
    }
}  

以经典的lena图为例,加入10%的椒盐噪声后:



滤波器原理

首先介绍一些通用的设定:令 Sxy 表示中心在 (x,y) 的点,尺寸为 m×n 的矩形子图像窗口的坐标集。 m×n 为滤波器模板的大小。 f^(x,y) 为滤波器得到的结果,赋值给 (x,y) </

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值