OpenCV Python:如何在图像上执行SQRBox滤波操作?

OpenCV Python:如何在图像上执行SQRBox滤波操作?

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

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 滤波处理的图像。

我们将使用此图像作为以下示例中的 Input File

OpenCV Python:如何在图像上执行SQRBox滤波操作?

示例

在这个Python程序中,我们应用SQRBox滤波器来处理颜色输入图像,核大小为1×1。

#导入所需的库
import cv2

#读取图像
img = cv2.imread('car.jpg')

#对输入图像应用sqrBoxFilter
sqrbox = cv2.sqrBoxFilter(img, cv2.CV_32F, ksize=(1,1),
        borderType = cv2.BORDER_REPLICATE)
print("我们应用ksize=(1,1)的sqrBoxFilter")

#保存输出
cv2.imshow('sqrBoxFilter', sqrbox)cv2.waitKey(0)
cv2.destroyAllWindows()

输出结果

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

我们应用ksize=(1,1)的sqrBoxFilter

然后您将获得如下所示的窗口,显示输出结果:

OpenCV Python:如何在图像上执行SQRBox滤波操作?

示例

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

# 导入所需库
import cv2

# 读取图像
img = cv2.imread('car.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
_, thresh = cv2.threshold(gray, 150, 255,cv2.THRESH_BINARY)

# 在输入图像上应用sqrBoxFilter
sqrbox = cv2.sqrBoxFilter(thresh, cv2.CV_32F, ksize=(5,5),
borderType = cv2.BORDER_REPLICATE)
print("我们应用了ksize=(5,5)的sqrBoxFilter")

# 显示输出
cv2.imshow('灰度图像', gray)
cv2.waitKey(0)
cv2.imshow('阈值化', thresh)
cv2.waitKey(0)
cv2.imshow('sqrBoxFilter', sqrbox)
cv2.waitKey(0)
cv2.destroyAllWindows()

输出

执行后,将产生以下 输出 ŌłÆ

我们应用了ksize=(5,5)的sqrBoxFilter

然后我们会得到以下三个窗口显示输出 ŌłÆ

OpenCV Python:如何在图像上执行SQRBox滤波操作?

OpenCV Python:如何在图像上执行SQRBox滤波操作?

OpenCV Python:如何在图像上执行SQRBox滤波操作?

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Python OpenCV