對圖像進行傅里葉變換的意義,以及處理圖像紋理特征



頻域圖像的意義:


灰度圖經過傅里葉變換,是從空間域到頻域的轉變

  空間域:原圖像的橫縱坐標為底面,灰度值為高度(從信號角度看,橫縱坐標相當於時間軸,灰度值為信號值)

 

  頻域:經過中心化后,中心是低頻,往外是高頻,某頻率的梯度越大(255)則亮度越強(白色)

    中心化是因為:傅里葉變換后原點在左上角,直流分量在角落,低頻部分位於四個角的區域


 

例子:


 

待處理圖像:

      

目標:消除條形波紋,並且不影響原圖像的清晰度

import cv2
import numpy as np
import matplotlib.pyplot as plt

img_joker = cv2.imread('joker.bmp',0) #直接讀取為灰度圖

f = np.fft.fft2(img_joker) #傅里葉變換
f1shift = np.fft.fftshift(f) #中心化
jok_f = np.log(np.abs(f1shift))
plt.imshow(jok_f,
'gray'),plt.title('joker_f'), plt.show()
'''得到下面的圖像'''

 

      圖中圓圈內最亮的白點代表了紋理特征所對應的頻域

采用最簡單的像素點置零,將四個頻域點去除(點的坐標通過人工定位,也確實是最麻煩的一步)

 1 #濾波,去除四個頻域點
 2 f1shift[152:154,145:146] = 0
 3 f1shift[139:141,207:210] = 0
 4 f1shift[188:190,124:126] = 0
 5 f1shift[176:178,187:190] = 0
 6 
 7 f2shift = np.fft.ifftshift(f1shift) #逆中心化
 8 jok_new = np.fft.ifft2(f2shift) #逆傅里葉
 9 jok_new = np.abs(jok_new)
10 
11 cv2.imwrite('joker_new.bmp',jok_new)

最終效果圖:    

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM