Java OpenCV-4.0.0 图像处理05 图像模糊(滤波)

@[TOC](Java OpenCV-4.0.0 图像处理05 图像模糊(滤波))

Java OpenCV-4.0.0 图像处理05 图像模糊(滤波)
Smooth/Blur给图像预处理时候减低噪声, 使用Smooth/Blur操作其背后是数学的卷积计算, 通常这些卷积算子计算都是线性操作,所以又叫线性滤波。均值模糊无法克服边缘像素信息丢失缺陷。原因是均值滤波是基于平均权重。高斯模糊部分克服了该缺陷,但是无法完全避免,因为没有考虑像素值的不同。高斯双边模糊 – 是边缘保留的滤波方法,避免了边缘信息丢失,保留了图像轮廓不变。
如果图片有噪点展示降噪的效果会更好,其中降噪函数的参数调节很重要。

package com.xu.opencv;

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.Point;
import org.opencv.core.Size;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;

/**  
 * 
 * @Title: Image.java   
 * @Description: OpenCV-4.0.0 测试文件
 * @Package com.xu.test   
 * @author: xuhyacinth     
 * @date: 2019年5月7日12:13:13   
 * @version: V-1.0.0 
 * @Copyright: 2019 xuhyacinth
 *
 */
public class Image {

	static {
		//在使用OpenCV前必须加载Core.NATIVE_LIBRARY_NAME类,否则会报错
		System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
	}

	public static void main(String[] args) {
		
	}

	/**
	 * OpenCV-4.0.0 均值模糊(降噪)
	 * @return: void  
	 * @date: 2019年5月7日12:16:55
	 */
	public static void blur() {
		Mat src = Imgcodecs.imread("C:\\Users\\Administrator\\Pictures\\3.jpeg");
		Mat image =new Mat(src.size(),src.type());
		Imgproc.blur(src, image, new Size(3,3),new Point(-1,-1));//奇数
		HighGui.imshow("均值模糊(降噪)", image);
		HighGui.waitKey(1);
	}

	/**
	 * OpenCV-4.0.0 高斯滤波(降噪)
	 * @return: void  
	 * @date: 2019年5月7日12:16:55
	 */
	public static void gausssianBlur() {
		Mat src = Imgcodecs.imread("C:\\Users\\Administrator\\Pictures\\3.jpeg");
		Mat image =new Mat(src.size(),src.type());
		Imgproc.GaussianBlur(src, image, new Size(11,11), 7,7);//奇数
		HighGui.imshow("高斯滤波(降噪)", image);
		HighGui.waitKey(1);
	}

	/**
	 * OpenCV-4.0.0  中值滤波(降噪)
	 * @return: void  
	 * @date: 2019年5月7日12:16:55
	 */
	public static void mediaBlur() {
		Mat src = Imgcodecs.imread("C:\\Users\\Administrator\\Pictures\\3.jpeg");
		Mat image =new Mat(src.size(),src.type());
		Imgproc.medianBlur(src, image, 9);
		HighGui.imshow("中值滤波(降噪)", image);
		HighGui.waitKey(1);
	}

	/**
	 * OpenCV-4.0.0  双边滤波(降噪)
	 * @return: void  
	 * @date: 2019年5月7日12:16:55
	 */
	public static void bilateralFilter() {
		Mat src = Imgcodecs.imread("C:\\Users\\Administrator\\Pictures\\3.jpeg");
		Mat image =new Mat(src.size(),src.type());
		Imgproc.bilateralFilter(src, image, 2, 150, 9);
		HighGui.imshow("双边滤波(降噪)", image);
		HighGui.waitKey(1);
	}


}


Java OpenCV-4.0.0 图像处理05 图像模糊(滤波)_第1张图片
Java OpenCV-4.0.0 图像处理05 图像模糊(滤波)_第2张图片
Java OpenCV-4.0.0 图像处理05 图像模糊(滤波)_第3张图片
Java OpenCV-4.0.0 图像处理05 图像模糊(滤波)_第4张图片

你可能感兴趣的:(OpenCV,Java,OpenCV-4.X,图像处理,图形图像,Java,OpenCV-4.0.0,Java,OpenCV-4.0.0,图像处理,图形图像,图像模糊(滤波))