我一直在试图找出一种获取图像 DCT 的方法。得到图像并进行一堆过滤后,我想计算 DCT。以下是代码片段:
imgcv1 = cv2.split(imgcv)[0]
cv2.boxFilter(imgcv1, 0, (7,7), imgcv1, (-1,-1), False, cv2.BORDER_DEFAULT)
#resize image to 32x32
cv2.resize( imgcv1, (32, 32 ) ,imgcv1)
我一直在尝试使用此处给出的描述,但没有成功。当我尝试类似:
dst = cv2.dct(imgcv1)
我收到如下错误:
cv2.error: /build/buildd/opencv-2.3.1/modules/core/src/dxt.cpp:2247: error: (-215) type == CV_32FC1 || type == CV_64FC1 in function dct
从错误中我可以理解的是,输入不是 32 位浮点数而是 8 位。我如何转换它并将其作为 32 位浮点数传递?我不确定这个问题。我会很感激你的帮助。如何获得 DCT?我对 openCV 和 python 很陌生。我在同一主题上搜索了其他 2/3 线程,但没有用。