天天看點

二維離散變換DCT的一點簡單了解

cv2裡面有封裝的子產品,這裡隻寫了解不寫公式。

DCT變換的目的:人臉對于低頻部分更敏感,去除高頻部分,隻保留低頻部分。變換後的資料左上角為低頻部分,右下角為高頻部分。大多數信号的能量集中在低頻部分,是以變換後的低頻部分(左上角)的信号可以認為是一種壓縮。

基于dct的phash算法的實作思路:

1. 圖檔讀取資料

2. 圖檔壓縮到32*32大小

3. 轉換為灰階圖

4. DCT變換,注意資料格式為浮點32

5. 取出左上角低頻部分(8*8)

6. 求低頻部分的均值

7. 低頻部分轉化為布爾資料(大于均值轉換為True,小于均值->False),轉化方法可以用astype我在另一篇部落格中寫過bool資料和int資料的轉化。

繼續閱讀