# 图像的 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 变换
得到效果图