使用OpenCV在图像上应用高斯模糊(OpenCV图像去噪声)

高斯模糊是一种图像平滑算法,用于去除图像中的噪声。

OpenCV 具有GaussianBlur允许对图像应用高斯模糊的功能。平滑是通过使用 3 个参数来控制的,例如内核大小 ( ) 和 X ( ) 和 Y ( ) 方向ksize上的标准偏差。如果仅设置,则将与 相同。如果两个参数和都设置为零,则它们是根据内核大小计算的。sigmaXsigmaYsigmaXsigmaYsigmaXsigmaXsigmaY

以下代码使用 7×7 内核并sigmaX等于 0 对图像应用高斯模糊。请注意,它sigmaY也自动设置为 0。

  • Java实现
package app;

import org.opencv.core.*;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;

public class Main
{
    static { System.loadLibrary(Core.NATIVE_LIBRARY_NAME); }

    public static void main(String[] args)
    {
        Mat inputImg = Imgcodecs.imread("test.jpg");
        Imgproc.cvtColor(inputImg, inputImg, Imgproc.COLOR_BGR2GRAY);

        Mat outputImg = new Mat();
        Imgproc.GaussianBlur(inputImg, outputImg, new Size(7, 7), 0);

        HighGui.imshow("Input image", inputImg);
        HighGui.imshow("Output image", outputImg);
        HighGui.waitKey(0);
        HighGui.destroyAllWindows();

        System.exit(0);
    }
}
  • C++实现
#include <opencv2/opencv.hpp>

using namespace cv;

int main()
{
    Mat inputImg = imread("test.jpg");
    cvtColor(inputImg, inputImg, COLOR_BGR2GRAY);

    Mat outputImg;
    GaussianBlur(inputImg, outputImg, Size(7, 7), 0);

    imshow("Input image", inputImg);
    imshow("Output image", outputImg);
    waitKey(0);
    destroyAllWindows();

    return 0;
}
  • python实现
import cv2

inputImg = cv2.imread('test.jpg')
inputImg = cv2.cvtColor(inputImg, cv2.COLOR_BGR2GRAY)

outputImg = cv2.GaussianBlur(inputImg, (7, 7), 0)

cv2.imshow('Input image', inputImg)
cv2.imshow('Output image', outputImg)
cv2.waitKey(0)
cv2.destroyAllWindows()

效果图:

使用OpenCV在图像上应用高斯模糊(OpenCV图像去噪声)

本文来自作者投稿,版权归原作者所有。如需转载,请注明出处:https://www.nxrte.com/jishu/17224.html

(0)

相关推荐

发表回复

登录后才能评论