频域处理
二维DFT
1 | f=imread('C:\Users\HP\Desktop\ImageDatabase\dipum_images_ch04\Fig0403(a)(image).tif'); |
原图及DFT:
频谱居中及其对数放大,相角
频域滤波
未填充
1 | f=imread('C:\Users\HP\Desktop\ImageDatabase\dipum_images_ch04\Fig0405(a)(square_original).tif'); |
原图及其傅里叶变换:
高斯滤波器:
滤波结果:左右边缘并没有计算到
有填充
填充函数:
1 | function PQ = paddedsize(AB, CD, PARAM) |
1 | f=imread('C:\Users\HP\Desktop\ImageDatabase\dipum_images_ch04\Fig0405(a)(square_original).tif'); |
原图:
高斯滤波器:
填充过后滤波:
切割得到最终结果:此时左右边缘均模糊
频域滤波封装成一个函数:
1 | function g = dftfilt(f, H,classout) |
从空域滤波器获得频域滤波器
1 | figure |
1 | f=imread('C:\Users\HP\Desktop\ImageDatabase\dipum_images_ch04\Fig0409(a)(bld).tif'); |
原图及其傅里叶变换:
sobel滤波器及其中心化:
采用空域滤波与频域滤波:两者一致
在频域直接生成滤波器
建立网格数组:
1 | function [U, V] = dftuv(M, N) |
1 | >> [U,V]=dftuv(5,5); |
用生成的高斯滤波器滤波:
1 | f=imread('C:\Users\HP\Desktop\ImageDatabase\dipum_images_ch04\Fig0413(a)(original_test_pattern).tif'); |
原图及其傅里叶变换:
滤波器与滤波结果:
封装函数:产生几种
低通滤波器
1 | function H = lpfilter(type, M, N, D0, n) |
高通滤波器:
1 | function H = hpfilter(type, M, N, D0, n) |
高通滤波:
1 | f=imread('C:\Users\HP\Desktop\ImageDatabase\dipum_images_ch04\Fig0413(a)(original_test_pattern).tif'); |
高频强调滤波:
1 | f=imread('C:\Users\HP\Desktop\ImageDatabase\dipum_images_ch04\Fig0419(a)(chestXray_original).tif'); |
选择性滤波
陷波带阻与带通滤波器:
1 | function H=bandfilter(type,band,M,N,D0,W,n) |
‘ideal’
‘btw’
‘gaussian’