网站首页 > 技术文章 正文
图像模糊
图像模糊是图像处理中最简单和常用的操作之一,其主要目的之一是给图像预处理的时候降低图像噪声。
图像模糊方法可以总结如下:
1、归一化均值滤波器(API为blur())
2、高斯滤波器(API为GaussianBlur()),
3、中值滤波器(API为MedianBlur())
4、双边滤波器(API为BilateralFilter())
归一化均值滤波器
均值滤波是一种线性滤波器,处理思路也很简单,就是将一个窗口区域中的像素计算平均值,然后将窗口中计算得到的均值设置为锚点上的像素值。该算法有优点在于效率高,思路简单。同样,缺点也很明显,计算均值会将图像中的边缘信息以及特征信息“模糊”掉,会丢失很多特征。
函数说明:Imgproc.blur(Mat src, Mat dst, Size ksize, Point anchor, int borderType );
参数说明:src:图片,dst:目标图,ksize:内核大小 Size(Weight, Height),anchor : 内核锚点,borderType : 边界填充方式。默认值填充方式BORDER_DEFAULT。
代码案例
package com.what21.opencv01.demo06;
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.Point;
import org.opencv.core.Size;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
/**
* 归一化均值滤波器(API为blur())
*/
public class OpenCVBlur {
static {
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
}
public static void main(String[] args) {
Mat src=Imgcodecs.imread("D:/1.jpg");
if(src.empty()){
return ;
}
//滤波
Mat dst = new Mat();
//灰度化
Imgproc.cvtColor(src, src, Imgproc.COLOR_BGR2GRAY);
Imgproc.blur(src, dst, new Size(3, 3), new Point(1, 1), Core.BORDER_DEFAULT);
Imgcodecs.imwrite("D:/1.blur.jpg", dst);
}
}
高斯滤波器
高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的减噪过程。 [1] 通俗的讲,高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到。高斯滤波的具体操作是:用一个模板(或称卷积、掩模)扫描图像中的每一个像素,用模板确定的邻域内像素的加权平均灰度值去替代模板中心像素点的值。
高斯模糊(Gaussian Blur),也叫高斯平滑,图像处理软件中广泛使用的处理效果,通常用它来减少图像噪声以及降低细节层次。
代码案例
package com.what21.opencv01.demo06;
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.Size;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
/**
*
*/
public class OpenCVGaussianBlur {
static {
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
}
public static void main(String[] args) {
Mat src=Imgcodecs.imread("D:/1.jpg");
if(src.empty()){
return ;
}
Mat dst = src.clone();
//复制矩阵进入dst
Imgproc.GaussianBlur(src,dst,new Size(13,13),10,10);
//图像模糊化处理11
Imgcodecs.imwrite("D:/1,1.jpg", dst);
Imgproc.GaussianBlur(src,dst,new Size(31,5),80,3);
//图像模糊化处理33
Imgcodecs.imwrite("D:/1,2.jpg", dst);
}
}
中值滤波器
中值滤波是一种非线性数字滤波器技术,经常用于去除图像或者其它信号中的噪声。这个设计思想就是检查输入信号中的采样并判断它是否代表了信号,使用奇数个采样组成的观察窗实现这项功能。观察窗口中的数值进行排序,位于观察窗中间的中值作为输出。然后,丢弃最早的值,取得新的采样,重复上面的计算过程。
代码案例
package com.what21.opencv01.demo06;
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
/**
*/
public class OpenCVMedianBlur {
static {
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
}
public static void main(String[] args) {
Mat src = Imgcodecs.imread("D:/1.jpg");
Mat dst = src.clone();
//复制矩阵进入dst
Imgproc.medianBlur(src, dst, 11);
//图像模糊化处理11
Imgcodecs.imwrite("D:/1.11.jpg", dst);
Imgproc.medianBlur(src, dst, 33);
//图像模糊化处理33
Imgcodecs.imwrite("D:/1.33.jpg", dst);
}
}
双边滤波器(Bilateral Filter)
为使影像平滑化的非线性滤波器, 这个想法由C. Tomasi在1998年提出。 和传统的影像平滑化算法不同,双边滤波器除了使用像素之间几何上的靠近程度之外,还多考虑了像素之间的光度/色彩差异, 使得双边滤波器能够有效的将影像上的噪声去除,同时保存影像上的边缘资讯。 在实作上,双边滤波器和非等向性扩散及Adaptive Smoothing不同,它是非迭代、区域性的, 能够较以上两个方法简化。
双边滤波是一种非线性的滤波方法,是结合图像的空间邻近度和像素值相似度的一种折衷处理,同时考虑空间与信息和灰度相似性,达到保边去噪的目的,具有简单、非迭代、局部处理的特点。之所以能够达到保边去噪的滤波效果是因为滤波器由两个函数构成:一个函数是由几何空间距离决定滤波器系数,另一个是由像素差值决定滤波器系数。
代码案例
package com.what21.opencv01.demo06;
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
/**
* 双边滤波器
*/
public class OpenCVBilateralBlur {
static {
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
}
public static void main(String[] args) {
Mat src = Imgcodecs.imread("D:/1.jpg");
if (src.empty()) {
return;
}
Mat dst = new Mat();
double sigmaSpace = 150;
Imgproc.bilateralFilter(src, dst, 1, sigmaSpace, Core.BORDER_DEFAULT);
Imgcodecs.imwrite("D:/1.bilateralFilter.jpg", dst);
}
}
猜你喜欢
- 2024-12-26 图像采集卡 – 接口介绍 图像采集卡插槽
- 2024-12-26 深度学习中的图像分割:方法和应用
- 2024-12-26 基于深度学习的图像识别算法研究 基于机器学习的图像识别研究
- 2024-12-26 什么是卷积? 什么是卷积运算
- 2024-12-26 图像配准及其应用 图像配准流程的三要素
- 2024-12-26 作业帮公开图像处理相关专利,通过人工智能模型消除图像模糊
- 2024-12-26 图像处理中的高斯(核)函数简介 高斯函数在图像处理中的应用
- 2024-12-26 图像进行预处理和优化方法都有哪些
- 2024-12-26 几种典型的图像去噪算法总结 图像去噪模型
- 2024-12-26 NVIDIA Image Scaling可通过Lossless Scaling在AMD/Intel上使用
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)