Java+opencv3.2.0之均值滤波
2017-08-01 15:19
211 查看
均值滤波主要是利用某像素点周边的像素的平均值来达到平滑噪声的目的。它是一种典型的线性滤波算法。均值滤波本身存在着缺陷,它不能很好的保护图像的细节,在去噪的同时会破坏图像的细节部分,不能很好的去除噪点。
均值滤波常用的内核如图:
Opencv3.2.0中实现均值滤波的方法:Imgproc.blur(Mat src, Mat dst, Size ksize, Point anchor, int borderType)
参数说明:
src:输入源图像
dst:输出目标图像
ksize:内核的大小
anchor:锚点,有默认值new Point(-1,-1),代表核的中心
borderType:推断图像外部像素的边界模式,有默认值Core.BORDER_DEFAULT
borderType的取值还有:
BORDER_REPLICATE:复制法,既是复制最边缘像素,例如aaa|abc|ccc
BORDER_REFLECT:对称法,例如cba|abc|cba
BORDER_REFLECT_101:对称法,最边缘像素不会被复制,例如cb|abc|ba
BORDER_CONSTANT:常量法,默认为0
BORDER_WRAP:镜像对称复制
例子:
源图像:
目标图像:
均值滤波常用的内核如图:
Opencv3.2.0中实现均值滤波的方法:Imgproc.blur(Mat src, Mat dst, Size ksize, Point anchor, int borderType)
参数说明:
src:输入源图像
dst:输出目标图像
ksize:内核的大小
anchor:锚点,有默认值new Point(-1,-1),代表核的中心
borderType:推断图像外部像素的边界模式,有默认值Core.BORDER_DEFAULT
borderType的取值还有:
BORDER_REPLICATE:复制法,既是复制最边缘像素,例如aaa|abc|ccc
BORDER_REFLECT:对称法,例如cba|abc|cba
BORDER_REFLECT_101:对称法,最边缘像素不会被复制,例如cb|abc|ba
BORDER_CONSTANT:常量法,默认为0
BORDER_WRAP:镜像对称复制
例子:
public static void main(String[] args) { System.loadLibrary(Core.NATIVE_LIBRARY_NAME); Mat srcImage = Imgcodecs.imread("F:\\t010bf2fad41ee7797e.jpg"); Mat dstImage = srcImage.clone(); Imgproc.blur(srcImage, dstImage, new Size(9,9), new Point(-1, -1), Core.BORDER_DEFAULT); Imgcodecs.imwrite("F:\\blur.jpg", dstImage); }
源图像:
目标图像:
相关文章推荐
- Java+opencv3.2.0之hough圆检测
- 【图像处理】图像滤波去噪声——均值滤波、中值滤波、对称均值滤波 低通滤波 高通滤波(opencv)
- Java+opencv3.2.0实现hough圆检测功能
- Java+opencv3.2.0之直方图均衡
- [转]【OpenCV入门教程之八】线性邻域滤波专场:方框滤波、均值滤波与高斯滤波
- Java+opencv3.2.0之sobel算子
- opencv手动对BGR彩图进行均值滤波
- 学习【OpenCV入门教程之八】线性邻域滤波专场:方框滤波、均值滤波与高斯滤波---思维导图笔记
- Java+opencv3.2.0实现hough直线检测
- Java+opencv3.2.0之scharr滤波器
- 我的OpenCV学习笔记(八):空域滤波之均值滤波
- 滑动均值滤波的matlab实现和Java实现
- 【OpenCV入门教程之八】线性邻域滤波专场:方框滤波、均值滤波与高斯滤波
- opencv学习(二十三)之方框、均值、高斯、中值、双边滤波综合比较
- Java+opencv3.2.0之灰度化
- 基础图像处理之混合空间增强——(Java:拉普拉斯锐化、Sobel边缘检测、均值滤波、伽马变换)
- 基于OpenCV底层实现均值滤波,中值滤波和高斯滤波
- Java+opencv3.2.0实现模板匹配
- Java+opencv3.2.0之直方图均衡详解
- 【OpenCV入门教程之八】线性邻域滤波专场:方框滤波、均值滤波与高斯滤波