如何使用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