python离散余弦变换_在python3下使用OpenCV做离散余弦变换DCT及其反变换IDCT
對圖像處理經常用到DCT, Python下有很多帶有DCT算法包, 這里使用OpenCV的DCT做變換, 并簡單置0部分數據, 再查看反變換圖像的效果.
import numpy as np
import cv2
# from matplotlib import pyplot as plt
y = cv2.imread('window.bmp', 0)
# print(y.shape)
cv2.imshow("gray",y)
y1 = y.astype(np.float32)
# print(y1.dtype)
Y = cv2.dct(y1)
print(Y.shape)
for i in range(0,240):
for j in range(0,320):
if i > 100 or j > 100:
Y[i,j] = 0
cv2.imshow("Dct",Y)
y2 = cv2.idct(Y)
# print(y2.dtype)
cv2.imshow("iDCT",y2.astype(np.uint8))
cv2.waitKey(0)
對于320x240的圖像, 在頻域對大于100的行和列都置零(相當于低通濾波)后, 反變換后圖像有點模糊, 但還能還原大致效果.
cnblogs Tags: python, opencv, DCT
總結
以上是生活随笔為你收集整理的python离散余弦变换_在python3下使用OpenCV做离散余弦变换DCT及其反变换IDCT的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python实现微信自动发信息_Pyth
- 下一篇: python3.7如何使用enum_Py