如何使用OpenCV Python查詢影像的離散餘弦變換?
我們使用cv2.dct()來查詢影像的離散餘弦變換。此函式轉換dtype為float32的灰度影像。它接受兩種型別的標誌cv2.DCT_INVERSE或cv2.DCT_ROWS。要將變換後的影像轉換為原始影像,我們使用cv2.idct()。
步驟
要查詢輸入影像的離散餘弦變換,您可以按照以下步驟操作:
匯入所需的庫OpenCV和NumPy。確保您已安裝它們。
使用cv2.imread()方法讀取輸入影像。指定影像的完整路徑。使用cv2.cvtColor()方法將輸入影像轉換為灰度影像。將灰度影像轉換為np.float32。
使用cv2.dct()查詢影像的離散餘弦變換。此方法採用浮點型灰度影像。將標誌cv2.DCT_INVERSE或cv2.DCT_ROWS傳遞給cv2.dct()函式。使用cv2.imshow()方法視覺化輸入影像的離散變換。
要視覺化離散餘弦變換後的輸入影像,請應用逆離散餘弦變換cv2.idct()。並將影像轉換為np.uint8。
讓我們看看查詢輸入影像的離散餘弦變換的示例。
輸入影像
我們將在下面的示例中使用以下影像作為輸入檔案。

示例
在此示例中,我們查詢輸入影像的離散餘弦變換。我們將標誌cv2.DCT_INVERSE傳遞給cv2.dct()函式。
# import required libraries import cv2 import numpy as np # read input image as grayscale img = cv2.imread('leaf1.jpg', 0) # convert the grayscale to float32 imf = np.float32(img) # float conversion # find discrete cosine transform dst = cv2.dct(imf, cv2.DCT_INVERSE) # apply inverse discrete cosine transform img1 = cv2.idct(dst) # convert to uint8 img1 = np.uint8(img) # display the images cv2.imshow("DCT", dst) cv2.waitKey(0) cv2.imshow("IDCT back image", img1) cv2.waitKey(0) cv2.destroyAllWindows()
輸出
執行上述程式時,它將生成以下輸出視窗:


示例
在此示例中,我們查詢輸入影像的離散餘弦變換。我們將標誌cv2.DCT_ROWS傳遞給cv2.dct()函式。
# import required libraries import cv2 import matplotlib.pyplot as plt import numpy as np # read input image as grayscale img = cv2.imread('leaf1.jpg', 0) # convert the grayscale to float32 imf = np.float32(img) # float conversion # find discrete cosine transform dct = cv2.dct(imf, cv2.DCT_ROWS) # apply inverse discrete cosine transform img1 = cv2.idct(dct) # convert to uint8 img1 = np.uint8(img) # display the image cv2.imshow("DCT", dct) cv2.waitKey(0) cv2.imshow("IDCT back image", img1) cv2.waitKey(0) cv2.destroyAllWindows()
輸出
執行上述程式時,它將生成以下輸出視窗:


廣告
資料結構
網路
關係資料庫管理系統(RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP