gpt4 book ai didi

python - 如何使用 opencv 在 python 中获取图像的 dct

转载 作者:太空宇宙 更新时间:2023-11-03 21:47:34 24 4
gpt4 key购买 nike

我一直在尝试找出一种获取图像 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)

我一直在尝试使用给定的描述 here但没有成功。当我尝试类似的东西时:

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 位 float 而是 8 位。我如何转换它并将其作为 32 位 float 传递?我不确定问题所在。我将不胜感激你的帮助。我如何获得 DCT?我对 openCV 和 python 很陌生。我搜索了同一主题的其他 2/3 线程,但没有成功。

最佳答案

我找到了解决方案。正如我所说,我们也需要将其转换为 0 到 1 范围内的 float 。然后我们可以在计算 DCT 后将其转换回来:

imf = np.float32(imgcv1)/255.0  # float conversion/scale
dct = cv2.dct(imf) # the dct
imgcv1 = np.uint8(dct*255.0) # convert back to int

关于python - 如何使用 opencv 在 python 中获取图像的 dct,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15488700/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com