OpenCV java 图像基本处理-模糊 (8)

其实我们知道支付宝在支付的时候有人脸识别操作,我们在第一次开通的时候,需要我们人脸的认证操作,需要我们露脸,在手机的摄像头面前摇摇头,眨眨眼。其实这个过程是属于特征提取的过程,我们下次支付的时候,我们脸部的特征会和认证的时候的特征进行比较,如果特征能够匹配上,那就是本人了

那么这个支付宝如何根据对我们的人脸进行特征提取操作,当然这个我们并不清楚,可以知道的是使用了某些算法,对我们的人脸图片进行特征提取,那么这个特征在提取之前需要对我们的人脸图像进行预处理操作,今天说的模糊就是预处理的一个过程。

概念:

滤波(模糊)的概念和作用:
    图像滤波增强处理实质上就是运用滤波技术来增强图像的某些空间频率特征,以改善地物目标与领域或背景之间的灰度反差。遥感系统成像过程中可能产生的”模糊”作用,常使遥感图像上某些用户感兴趣的线性形迹、纹理与地物边界等信息显示得不够清晰,不易识别。需要通过采用领域处理方法来分析、比较和调整像元与其周围相邻像元间的对比度关系,图像才能得到增加,也就是说
需要采用滤波增加技术处理。

一、空域滤波:使用空域卷积模板进行的图像处理,模板本身被称为空域滤波器
  1.线性滤波器:
    是线性系统和频域滤波概念在空域的自然延伸。
    它包括:低通滤波器(低频的通过):平滑图像,去除噪音
        高通滤波器:边缘增强,边缘提取
        带通滤波器:删除特定频率

  2.非线性滤波器:使用模板进行结果像素值的计算时,结果值直接取决于像素领域的值,而不使用加权和的计算方式
    它包括:中值滤波:平滑图像,去除噪音
        最大值滤波:寻找最亮点
        最小值滤波:寻找最暗点

    平滑滤波器的主要用途:降低噪音,对大图像处理前,删去无用的细小细节,平滑处理,恢复过分的锐化的图像,图像创艺
    几种简单的低通滤波器:
      均值滤波器:待处理像素点的值,等于其一定大小的领域内全体像素的平均值
      加权平均滤波器:待处理像素点的输出值,等于其周围相邻像素的全体像素的加权平均值
      中值滤波器:用模板区域内象素的中值,作为结果值。消除孤立的亮点(暗点),抑制噪声,可以比较好地保留边缘轮廓信息和图像的细节

    锐化滤波器:增强图像中景物的边缘和轮廓,印刷中的细微层次强调,军事目标识别、定位等
    它包括:
        基本高通滤波器:在增强了边缘的同时,丢失了图像的层次和背景亮度。能够增强图像中的小尺度地物特征。
        高增益滤波器:在增强图像的边缘和细节的同时,保持了原图像的低频成分。即增强了边缘又保留了层次,但在增强了边缘的同时也增强了噪音。

    微分滤波器:直接使用,与高通类似。有两种特殊应用:梯度大于25,赋255,否则赋原值,图象中的边缘信息被突出,
          背景保留。大于25,赋最大值255,否则为零,图像中的边缘信息被突出,同时图像也被二值化。

二、频域滤波:
    低通滤波: 
      理想低通滤波器(ILPF)
      Butterworth低通滤波器(BLPF)
      指数抵通滤波器(ELPF)
      梯形低通滤波器(TLPF)

    高通滤波:
      理想高通滤波器(IHPF)
      Butterworth高通滤波器(BHPF)
      指数高通滤波器(EHPF)
      梯形高通滤波器(THPF)

带通/带阻滤波器:带通允许一定频率范围内的信号通过而阻止其他频率范围内的信号通过。

上面是一些概念性的东西,本文中不会介绍那么多,我们看一下在opencv中常用的滤波方法

均值滤波:

在opencv中均值滤波方法是blur

	Imgproc.blur(src, dst1, ksize);
	Imgproc.blur(src, dst1, ksize, anchor);
	Imgproc.blur(src, dst1, ksize, anchor, borderType);

我们先看第一种方法的效果

        String filename = "D:\\svnp\\MyYan\\res\\drawable\\sanli.jpg";
		Mat src = Imgcodecs.imread(filename);
		Mat dst1=new Mat();
		Mat dst2=new Mat();
		Mat dst3=new Mat();
		Size ksize1=new Size(10,10);
		Size ksize2=new Size(20,20);
		Size ksize3=new Size(40,40);
		Imgproc.blur(src, dst1, ksize1);
		Imgproc.blur(src, dst2, ksize2);
		Imgproc.blur(src, dst3, ksize3);
		HighGui.imshow("原图",src);
		HighGui.imshow("均值滤波ksize10*10",dst1);
		HighGui.imshow("均值滤波ksize20*20",dst2);
	    HighGui.imshow("均值滤波ksize60*60",dst3);
		HighGui.waitKey(10);

可以看到的是size越大,就会更加的模糊,size的第一个值为水平方向模糊大小,size的第二个值为垂直方向模糊程度大小

为1的时候为不模糊

中值滤波

Imgproc.medianBlur(Mat src, Mat dst, int ksize)

  ksize:孔径线性尺寸;它必须是奇数且大于1

当ksize=1的时候没有编号,ksize越大模糊程度也就越大

高斯模糊

		Imgproc.GaussianBlur(src, dst,ksize, sigmaX);

		Imgproc.GaussianBlur(src, dst, ksize, sigmaX, sigmaY);

		Imgproc.GaussianBlur(src, dst, ksize, sigmaX, sigmaY, borderType);

sigmaX方向上的高斯核标准差,具体是什么我们就不在这里探究了,我们看看其对图片的影响,当size一定

当sigma的值越大,图片会更加的模糊

上面接介绍了三种模糊处理操作

我们做特征提取,首先应该做的是需要将图片进项滤波,也是一种去燥

希望对你有所帮助

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值