1.二维离散余弦变换(DCT)的原理见博客:点击打开链接
其中DCT和IDCT的变换基为:
OpenCV自带有DCT的程序,函数用法为:dst = cv2.dct(src), 其中src必须为float类型,uint8不能正常运行。
自己编写的dct程序和OpenCV自带的dct对比程序如下:
#二维图像的离散变余弦换(DCT)
#Python3.5
#库:cv2+numpy+matplotlib
#作者:James_Ray_Murphy
import cv2
import numpy as np
import matplotlib.pyplot as plt
img = cv2.imread('baoguo1.jpg', 0)
img1 = img.astype('float')
C_temp = np.zeros(img.shape)
dst = np.zeros(img.shape)
m, n = img.shape
N = n
C_temp[0, :] = 1 * np.sqrt(1/N)
for i in range(1, m):
for j in range(n):
C_temp[i, j] = np.cos(np.pi * i * (2*j+1) / (2 * N )
) * np.sqrt(2 / N )

本文探讨了二维离散余弦变换(DCT)的基本原理,并提供了使用OpenCV库与自编程序进行DCT和反变换(IDCT)的对比。通过实例展示了如何在Python中应用DCT,同时比较了自定义实现与OpenCV内置函数的效果。
最低0.47元/天 解锁文章
4323

被折叠的 条评论
为什么被折叠?



