Java+opencv3.2.0之高斯滤波

来源:互联网 发布:linux 安装telnet 服务 编辑:程序博客网 时间:2024/06/05 01:52

高斯滤波器是利用高斯核的一个二维的卷积算子,用于图像模糊去噪。它也是一种线性滤波器,其模板系数会随着距离模板中心越远而越小。高斯滤波的结果和高斯分布的标准差σ有关,σ越大,平滑效果越好。高斯滤波的具体操作是:用一个模板扫描图像中的每一个像素,用模板确定的邻域内像素的加权平均值去替代模板中心像素点的值。
如图为高斯滤波器σ为0.8的高斯内核模板:
这里写图片描述
Opencv3.2.0中提供了实现高斯滤波的方法:Imgproc.GaussianBlur(Mat src, Mat dst, Size ksize, double sigmaX, double sigmaY, int borderType)
参数说明:
src:输入源图像
dst:输出目标图像
ksize:内核模板大小
sigmaX:高斯内核在X方向的标准偏差
sigmaY:高斯内核在Y方向的标准偏差。如果sigmaY为0,他将和sigmaX的值相同,如果他们都为0,那么他们由ksize.width和ksize.height计算得出
borderType: 用于判断图像边界的模式

例子:

public static void main(String[] args) {    System.loadLibrary(Core.NATIVE_LIBRARY_NAME);    Mat srcImage = Imgcodecs.imread("F:\\t017f70fb050ab42551.jpg");    Mat dstImage = srcImage.clone();    Imgproc.GaussianBlur(srcImage, dstImage, new Size(9,9), 0, 0, Core.BORDER_DEFAULT);    Imgcodecs.imwrite("F:\\GaussianBlur.jpg", dstImage);}

源图像:
这里写图片描述

目标图像:
这里写图片描述

阅读全文
0 0
原创粉丝点击