在opencv离散余弦变换函数中,如何在输出矩阵中显示系数?

时间:2015-02-11 09:10:39

标签: opencv image-processing matrix dct

在下面的模糊代码中,我可以清楚地看到频率表示随着模糊内核变得越来越大而变化,但我试图理解如何可视化实际的dct系数。如下所示,左上角是低频,右下角是高频 - 当我模糊图像时,我看到一个明显的移位。但是我的系数矩阵在哪里,我如何显示它,默认情况下矩阵有多大?在阅读和教程中,我发现矩阵通常是8x8。

img = cv2.imread('lena.jpg')
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

for i in xrange(1,31,2):
   blur = cv2.blur(img,(i,i))
   string = 'blur : kernel size - '+str(i)

   imf = np.float32(blur)  # float conversion
   dst = cv2.dct(imf)           # the dct
   img2 = np.uint8(dst)    # convert back

   cv2.putText(blur,string,(20,20),cv2.FONT_HERSHEY_COMPLEX_SMALL,1,(0,0,0))
   #vis = np.hstack([vis,np.hstack([blur,img2])])
   vis = np.concatenate((blur, img2), axis = 1)
   cv2.imshow('Blur',vis)
   cv2.waitKey(DELAY_BLUR)

enter image description here

我应该能够访问包含系数的矩阵,然后我想想象他们的贡献乘以下面的基函数。

enter image description here

0 个答案:

没有答案