1、频率滤波

图像的空间域滤波:用各种模板直接与图像进行卷积运算,实现对图像的处理,这种方法直接对图像空间操作,操作简单。图像处理不仅可以在空间域进行还可以在频率域进行,把空间域的图像开窗卷积形式,变换得到频率域的矩阵点乘形式得到比较好的效果。图像频域滤波,先把图像转换到频域空间,然后对不同的频率点进行滤波,使用信号处理的技术,对图像实现滤波。比如实现图像的轮廓提取,在空间域滤波中我们使用一个拉普拉斯模板就可以提取,而在频域内,我们使用一个高通滤波模板,可以实现轮廓的提取。

图像特征与像素点数值的关系:

图像尺寸418*564,如果把每一行所有像素,一行564个点的灰度作为一维向量画图,取前三行画成三条曲线,就得到了下面的图形。

subplot(2,1,1);

imshow(img), title('原始图像');

line1 = img(1, :);

line2 = img(2, :);

line3 = img(3, :);

subplot(2,1,2);

hold on

plot(line1, 'r');

plot(line2, 'g');

plot(line3, 'b');

输出结果如下图。

图像前几行的特征如下图(为了方便观察提取了不止三行):

从图像矩阵前几行的像素特征可见,图像平坦的地方像素曲线也平坦,图像亮的地方就是图像像素剧烈变化的地方,图像像素值发生较大差异的地方也是图像发生突变的地方,这些位置一般就是图像轮廓。图像的频率体现了图像中灰度变化剧烈程度,是灰度在平面空间上的梯度。所以前面讲的空域滤波,可以使用平滑来滤除噪声实现平滑,从上面曲线图像上看,可以按照信号处理思想来理解,平滑滤波就是频率低通。对应的,频率高通滤波就是空域的提取边界。

2、图像傅里叶变换

傅里叶变换可以将一个时域信号转换成在不同频率下对应的振幅及相位,其频谱就是时域信号在频域下的表现,而反傅里叶变换可以将频谱再转换回时域的信号。

imgPath = 'E:\opencv_pic\src_pic\pic4.bmp';

img = imread(imgPath);

img=rgb2gray(img);

f=fft2(im2double(img)); %FFT

F=f; %FFT频谱

T=log(F+1); %频谱对数变换

subplot(1,2,1),imshow(img),title('原始图像');

subplot(1,2,2),imshow(T,[]),title('原始图像其频谱图');

输出结果如下,幅度图在四个角出现亮光。因为实信号以fs为采样速率的信号在 fs/2处混叠,所以实信号fft的结果中前半部分对应[0, fs/2],后半部分对应[ -fs/2, 0]。横向和纵向都需要把频率转换到[ -fs/2, fs/2]的区间,可以使用fftshift函数。

在数字图像处理中,常常需要将F(u,v)的原点移到N*N频域的中心,以便能清楚地分析傅里叶谱的情况,平移前空域、频域原点均在左上方。而fftshift的作用就是这样,将0频谱移到正中心。

Y = fftshift(X) 通过将零频分量移动到数组中心,重新排列傅里叶变换 X。

如果 X 是向量,则 fftshift 会将 X 的左右两半部分进行交换。

如果 X 是矩阵,则 fftshift 会将 X 的第一象限与第三象限交换,将第二象限与第四象限交换。

如果 X 是多维数组,则 fftshift 会沿每个维度交换 X 的半空间。

a =

3 4

8 9

>> fftshift(a)

ans =

6 7

1 2

平移后的图:

傅里叶变换的能量集中在频率很小的圆内,当D0增大时能量衰减很快,高频部分虽然携带的能量很少,但是包含丰富的边界和细节信息,所以当截止频率D0变小时,虽然亮度足够(因能量损失不大),但图像变模糊。

3、频域滤波

傅里叶变换可以把图像从空域变换到频域,而傅里叶反变换可以将图像的频谱变换为空域图像。可以利用图像空域和频域之间的对应关系,尝试将空域卷积滤波变换为频域滤波,而后再将频域滤波处理后的图像反变换回空间域,从而达到图像增强的目的。

G=imnoise(img,'gaussian', 0, 0.05);%模拟均值为0方差为0.05的高斯噪声,

H=fft2(im2double(G)); %FFT

H=fftshift(H); %FFT频谱平移

T=log(abs(H)); %频谱对数变换

subplot(2,2,1), imshow(G),title('添加高斯噪声图像');

subplot(2,2,2),imshow(T, []),title('频谱图');

使用傅里叶变换得到图像的频域幅度,应用傅里叶反变换得到空域图像.

img2 = (ifft2(ifftshift(H))); %===频域的图反变换到空域

img3 = im2uint8(mat2gray(img2)); %===取其灰度图

subplot(2,2,3),imshow(img3);

title('anti-Fourier');

反变换效果如下图。

java 图像傅里叶变换_图像频域滤波与傅里叶变换相关推荐

  1. 数字图像处理报告:实验3 同态滤波、频域滤波、傅里叶变换性质、DCT变换性质

    实验3 同态滤波.频域滤波.傅里叶变换性质.DCT变换性质 一.实验主题: 学习同态滤波.频域滤波.傅里叶变换性质.DCT变换性质,掌握其原理,并学会编程,实现这些方法与性质. 二.实验目的: 1.掌 ...

  2. 基于skimage的数字图像处理——频域滤波(傅里叶变换)

    注意:文章代码基于notebook实现,也可修改后用于pycharm等编译器. 文章目录 前言 一.频域滤波与傅里叶变换 二.skimage代码实现 1.简单的傅里叶变换: 2.不同种类的正弦波及其傅 ...

  3. OPenCV:傅里叶变换、时域和频域、频谱和相位谱、傅里叶级数、离散傅里叶变换(DFT)、频域滤波、高通和低通滤波器、带通和带阻滤波器

    日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) 快速了解傅立叶变换(播放PPT即能动态地显示gif图)    ...

  4. VTK修炼之道25:图像基本操作_图像子块提取(特征区域提取)

    1.提取感兴趣区域 感兴趣区域(Volum of Interest,VOI)是指图像内部的一个子区域.在VTK中vtkExtractVOI类实现由用户指定的区域范围提取图像的子图像.该Filter的输 ...

  5. VTK修炼之道19:图像基本操作_图像像素值的访问与修改

    1.直接访问图像像素(索引法) #include <vtkAutoInit.h> VTK_MODULE_INIT(vtkRenderingOpenGL);#include <vtkS ...

  6. matlab图像降噪_图像超分:RealSR

    点击上方"AIWalker",选择加"星标"或"置顶"    重磅干货,第一时间送达 paper: https://csjcai.githu ...

  7. matlab极坐标下的二维傅里叶变换_形象理解二维傅里叶变换

    公众号关注 "DL-CVer" 设为 "星标",DLCV消息即可送达! 来自 | 知乎  作者 | 阿姆斯特朗 链接 | https://zhuanlan.zh ...

  8. 小波变换图像融合_图像视频降噪的现在与未来——从经典方法到深度学习

    噪声是图像与视频中的一种常见失真类型,也是腾讯多媒体实验室以及腾讯云提供的多种失真处理能力之一.本分享总结了噪声产生的几个原因,从理论上分析降噪的基本原理,并介绍了使用传统方法和深度学习进行单帧降噪. ...

  9. VTK修炼之道20:图像基本操作_图像类型转换

    1.vtkImageCast 图像数据类型转换在数字图像处理中会被频繁地用到.一些常用到的图像算子(例如梯度算子)在计算时出于精度的考虑,会将结果存储为float或者double类型.但是在图像显示时 ...

最新文章

  1. ROS-Baxter抓取
  2. webview页面和壳通信的库(精简版)
  3. php实现单选和多选功能,input:checkbox多选框实现单选效果跟radio一样
  4. 个人计算机与微型计算机的区别与联系,微处理器、微型计算机和微型计算机系统之间有何联系与区别?...
  5. SAP UI5 应用开发教程之三十二 - 如何创建一个自定义 SAP UI5 控件试读版
  6. 高鸿股份与鸿蒙,高鸿股份(000851)个股分析_牛叉诊股_同花顺财经
  7. 亲热接触Redis-第一天
  8. 学习开发webpart
  9. LeetCode58. 最后一个单词的长度
  10. wps怎么做时间线_时间不够用怎么办?如何做才会更高效
  11. 如何在三层交换机上实现跨VLAN 的DHCP配置
  12. 中科院自动化所王金桥:深耕AI中台引擎,助力AI场景化、多元化落地...
  13. HDU 1556 Color the ball 线段树
  14. jenkins - publish over ssh 学习+踩坑记
  15. c语言的if语句案例,c语言if语句(c语言if语句例子)
  16. C++和java的区别和联系
  17. 2019.9.2选择更新分离版
  18. BIN,S19,M0T,SREC,HEX文件解析;FileParse(二)之源码解析
  19. Git Github
  20. html怎么引轮播图插件,原生js写一个无缝轮播图插件(支持vue)

热门文章

  1. 把 .md 文件上传到博客园
  2. C语言:念数字(结构体)
  3. mysql socket tcp udp_TCP/UDP/HTTP/SOCKET深入浅出
  4. 政务大数据系统共享的难题如何解决
  5. jvm如何实现隐藏_反映一个隐藏的jvm超级大国
  6. c51单片机c语言程序,C51单片机的C语言程序设计.ppt
  7. 十四条令PHP初学者头疼问题大总结(1)
  8. 区块链每周看点 | TokenInsight
  9. JAVA修练秘籍第五章《卧薪尝胆》
  10. x58添加uefi_X58平台老台式机升级固态硬盘以及三通道内存