# 图像的 DCT 变换

# python 实现

这里去除了图像的低频部分,进行 dct 变换后得到图像的骨架

import cv2
import numpy as np
# 读取图像
img = cv2.imread('../res/img/baboon.bmp')
# 灰度化
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 显示原图
cv2.imshow('img', img)
# 获取图像宽高
height, width = img.shape
# 对图像进行 dct 变换
img_dct = cv2.dct(np.array(img, np.float32))
# 去除部分低频信息
img_dct[0:100, 0:100] = 0
# 进行反 dct 变换
img_idct = np.array(cv2.idct(img_dct), np.uint8)
# 显示图像
cv2.imshow('img_dct', np.array(img_dct, np.uint8).reshape(width, height))
cv2.imshow('img_idct', img_idct.reshape(width, height))
cv2.waitKey(0)

# CV Tool 小工具中的操作

# 灰度图 DCT

读取图像

进行灰度化

选定 DCT 去除的信息,进行 DCT 变换

得到效果图

# 彩色图像 DCT 变换

打开图像

选定 DCT 去除的信息,进行 DCT 变换

得到效果图