对图像进行傅里叶变换的意义,以及处理图像纹理特征



频域图像的意义:


灰度图经过傅里叶变换,是从空间域到频域的转变

  空间域:原图像的横纵坐标为底面,灰度值为高度(从信号角度看,横纵坐标相当于时间轴,灰度值为信号值)

 

  频域:经过中心化后,中心是低频,往外是高频,某频率的梯度越大(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