OpenCV Python – 如何对图像执行 SQRBox 滤波操作?


我们可以使用cv2.sqrBoxFilter()对图像执行SQRBox 滤波器操作。它计算与滤波器重叠的像素值的归一化平方和。我们使用以下语法:

cv2.sqrBoxFilter(img, ddepth, ksize, borderType)

其中,img是输入图像,ddepth是输出图像深度,ksize是内核大小,borderType是用于推断图像外部像素的边界模式。

步骤

要执行 SQRBox 滤波操作,您可以按照以下步骤操作:

  • 导入所需的库。在以下所有示例中,所需的 Python 库是OpenCV。请确保您已安装它。

  • 使用 cv2.imread() 方法读取输入图像。使用图像类型(例如 png 或 jpg)指定图像的完整路径。

  • 对输入图像应用cv2.sqrBoxFilter()滤波。我们将ddepth、ksize、borderType传递给函数。我们可以调整ksize以获得更好的结果。

sqrbox = cv2.sqrBoxFilter(img, cv2.CV_32F, ksize=(1,1), borderType = cv2.BORDER_REPLICATE)
  • 显示sqrBoxFilter滤波后的图像。

在以下示例中,我们将使用此图像作为输入文件


示例

在这个 Python 程序中,我们使用 1x1 的内核大小对彩色输入图像应用 SQRBox 滤波器。

# import required libraries import cv2 # Read the image. img = cv2.imread('car.jpg') # apply sqrBoxFilter on the input image sqrbox = cv2.sqrBoxFilter(img, cv2.CV_32F, ksize=(1,1), borderType = cv2.BORDER_REPLICATE) print("We applied sqrBoxFilter with ksize=(1,1)") # Save the output cv2.imshow('sqrBoxFilter', sqrbox) cv2.waitKey(0) cv2.destroyAllWindows()

输出

执行后,将产生以下输出:

We applied sqrBoxFilter with ksize=(1,1)

我们将获得以下窗口显示输出:


示例

在这个 Python 程序中,我们使用 5×5 的内核大小对二值图像应用 SQRBox 滤波器。

# import required libraries import cv2 # Read the image img = cv2.imread('car.jpg') gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) _, thresh = cv2.threshold(gray, 150, 255,cv2.THRESH_BINARY) # apply sqrBoxFilter on the input image sqrbox = cv2.sqrBoxFilter(thresh, cv2.CV_32F, ksize=(5,5), borderType = cv2.BORDER_REPLICATE) print("We applied sqrBoxFilter with ksize=(5,5)") # Display the outputs cv2.imshow('Gray Image', gray) cv2.waitKey(0) cv2.imshow('Threshold', thresh) cv2.waitKey(0) cv2.imshow('sqrBoxFilter', sqrbox) cv2.waitKey(0) cv2.destroyAllWindows()

输出

执行后,将产生以下输出

We applied sqrBoxFilter with ksize=(5,5)

我们将获得以下三个窗口显示输出:




更新于:2022年12月2日

317 次浏览

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告