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 次瀏覽

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.