如何使用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() 函数。
输出
当我们运行上面的程序时,它将产生以下 输出 窗口 –
示例
在此示例中,我们找到输入图像的离散余弦变换。我们将标志 cv2.DCT_ROWS 传递给 cv2.dct() 函数。
输出
运行上述程序后,将在窗口中生成以下 输出 −