Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在opencv中使用离散余弦变换(DCT)_Opencv_Image Processing_Dct - Fatal编程技术网

如何在opencv中使用离散余弦变换(DCT)

如何在opencv中使用离散余弦变换(DCT),opencv,image-processing,dct,Opencv,Image Processing,Dct,dct不能正确地在opencv中进行转换 imf=np.float32(块) dct=cv2.dct(国际货币基金组织) 当使用上面显示的代码进行转换时,此图像块 [162.3,40.6,20.0。。。 [30.5108.4 这应该是结果, [1186.3,40.6,20.0。。。 [30.5108.4 但我发现了这个结果。对于样本块,DCT工作正常。你得到的结果和你期望的结果之间的差异是因为给出的特定示例实际上对M而不是原始图像I进行DFT。在这种情况下,正如本文所示,M=I-128。你的示例

dct不能正确地在opencv中进行转换

imf=np.float32(块)
dct=cv2.dct(国际货币基金组织)

当使用上面显示的代码进行转换时,此图像块

[162.3,40.6,20.0。。。 [30.5108.4

这应该是结果,

[1186.3,40.6,20.0。。。 [30.5108.4


但我发现了这个结果。对于样本块,

DCT工作正常。你得到的结果和你期望的结果之间的差异是因为给出的特定示例实际上对M而不是原始图像I进行DFT。在这种情况下,正如本文所示,M=I-128。你的示例中唯一的区别是你没有进行减法在余弦变换或傅里叶变换中,第一个系数(有时称为“直流偏移”)具有更高的值,因为您的图像值更大。但这就是所有其他系数相同的原因。如果您拍摄一张图像,只需从整个图像中平均添加或减去一些,则变换的系数将相同,但第一个系数除外

根据DCT的标准定义:


这里可以看到,对于k=0的第一个系数,在余弦函数中,只得到0和cos(0)=1。因此,如图所示,X_0只是所有X_n值的总和。通常,该值可以通过与n相关的某个值进行缩放,使其类似于平均值。这样做时,它与X_0项相关,即“直流偏移”,您将看到该项被描述为“信号的平均值”或者换句话说,信号离0有多远。作为余弦/傅里叶变换系数之一,这非常有用,因为它可以完全描述信号;所有其他系数都描述频率内容,因此它们没有说明值离0有多远,但第一个系数,DC偏移,确实告诉你u移位!

离散余弦变换(DCT)工作正常。你得到的结果和你期望的结果之间的差异是因为给出的特定示例实际上对M而不是原始图像I进行DFT。在这种情况下,正如本文所示,M=I-128。你的示例中唯一的区别是你没有减去那部分,因此值是都大。在余弦或傅里叶变换中,第一个系数(有时称为“直流偏移”)具有更高的值,因为您的图像值更大。但这就是所有其他系数相同的原因。如果您拍摄一张图像,只需从整个图像中平均添加或减去一些,则变换的系数将相同,但第一个系数除外

根据DCT的标准定义:


这里可以看到,对于k=0的第一个系数,在余弦函数中,只得到0和cos(0)=1。因此,如图所示,X_0只是所有X_n值的总和。通常,该值可以通过与n相关的某个值进行缩放,使其类似于平均值。这样做时,它与X_0项相关,即“直流偏移”,您将看到该项被描述为“信号的平均值”或者换句话说,信号离0有多远。作为余弦/傅里叶变换系数之一,这非常有用,因为它可以完全描述信号;所有其他系数都描述频率内容,因此它们没有说明值离0有多远,但第一个系数,DC偏移,确实告诉你u轮班!

好的,谢谢,但这有什么原因吗?或者为什么要减法128?好的,谢谢,但有什么原因吗?或者为什么要减法128?
           [[154,123,123,123,123,123,123,136],
           [192,180,136,154,154,154,136,110],
           [254,198,154,154,180,154,123,123],
           [239,180,136,180,180,166,123,123],
           [180,154,136,167,166,149,136,136],
           [128,136,123,136,154,180,198,154],
           [123,105,110,149,136,136,180,166],
           [110,136,123,123,123,136,154,136]]