📅  最后修改于: 2021-01-07 06:38:09             🧑  作者: Mango
模糊是用于图像处理以去除噪声的常用技术。通常用于消除高频成分,例如图像中的噪点,边缘。当我们对图像应用模糊处理时,边缘将变得模糊。模糊的优点如下:
模糊的好处如下:
OpenCV主要提供以下类型的模糊技术。
在这种技术中,图像通过盒式滤波器进行卷积(归一化)。它计算内核区域下所有像素的平均值,并用计算出的平均值替换中心元素。 OpenCV提供cv2.blur()或cv2.boxFilter()来执行此操作。我们应该定义内核的宽度和高度。以下是cv2.blur()函数的语法。
cv2.blur(src, dst, ksize, anchor, borderType)
src-表示源(输入)图像。
dst-代表目标(输出)图像。
ksize-代表内核的大小。
锚点-表示锚点。
borderType-表示要用于输出的边框类型。
考虑以下示例:
im = cv2.imread(r'C:\Users\DEVANSH SHARMA\cat_16x9.jpg')
cv2.imshow('Original Image',im)
cv2.imshow('Blurred Image', cv2.blur(im, (3,3)))
cv2.waitKey(0)
cv2.destroyAllWindows()
输出量
中值模糊运算与高斯模糊非常相似。 OpenCV提供了meanblur()函数来执行模糊操作。它获取内核区域下所有像素的中值,并且中心元素将替换为该中值。对于图像中的盐和纸张噪点非常有效。内核大小应为正奇数整数。以下是此方法的语法。
cv2.medianBlur(src, dst, ksize)
src-表示源(输入图像)。
dst-代表目的地(输出图像)。
ksize-代表内核的大小。
考虑以下示例:
import cv2
import numpy
# read image
img = cv2.imread(r'C:\Users\DEVANSH SHARMA\cat_16x9.jpg', 1)
# apply gaussian blur on src image
dst = median = cv2.medianBlur(img,5)
# display input and output image
cv2.imshow("Gaussian Smoothing", numpy.hstack((src, dst)))
cv2.waitKey(0) # waits until a key is pressed
cv2.destroyAllWindows() # destroys the window showing image
输出量
图像平滑是一种有助于减少图像噪声的技术。由于相机传感器的影响,图像可能包含各种类型的噪点。它基本上消除了图像中的高频(噪点,边缘)内容,因此在此操作中边缘会稍微模糊。 OpenCV提供gaussianblur()函数以对图像进行平滑处理。语法如下:
dst=cv2.GuassiasBlur(src, ksize, sigmaX[,dst[,sigmaY[, borderType=BORDER_DEFAULT]]]
borderType-这些是在将内核应用于图像边界时指定的图像边界。可能的边框类型是:
考虑以下示例:
import cv2
import numpy
# read image
src = cv2.imread(r'C:\Users\DEVANSH SHARMA\cat_16x9.jpg', 1)
# apply gaussian blur on src image
dst = cv2.GaussianBlur(src, (5, 5), cv2.BORDER_DEFAULT)
# display input and output image
cv2.imshow("Gaussian Smoothing", numpy.hstack((src, dst)))
cv2.waitKey(0) # waits until a key is pressed
cv2.destroyAllWindows() # destroys the window showing image
输出: