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)
我们将获得以下三个窗口显示输出:
广告