matlab 对图像进行低通滤波,matlab图像处理实现低通滤波

matlab图像处理实现低通滤波

matlab图像处理实现低通滤波

clc;

clear all;

img=imread('lena.jpg');

img_noise = imnoise(img, 'gaussian', 0, 0.01);

subplot(2,2,1),imshow(img_noise);

title('原图像');

% 将低频移动到图像的中心,这个也很重要

s=fftshift(fft2(img_noise));

subplot(2,2,3),imshow(log(abs(s)),[]);

title('图像傅里叶变换取对数所得频谱');

% 求解变换后的图像的中心,我们后续的处理是依据图像上的点距离中心点的距离来进行处理

[a,b] = size(img);

a0 = round(a/2);

b0 = round(b/2);

d = min(a0,b0)/12;

d = d^2;

for i=1:a

for j=1:b

distance = (i-a0)^2+(j-b0)^2;

if distance

h = 1;

else

h = 0;

end

low_filter(i,j) = h*s(i,j);

end

end

subplot(2,2,4),imshow(log(abs(low_filter)),[])

title('低通滤波频谱');

new_img = uint8(real(ifft2(ifftshift(low_filter))));

subplot(2,2,2),imshow(new_img,[])

title('低通滤波后的图像');

这是学习图像处理使用傅里叶变换做的一个低通滤波,虽然傅里叶变换很复杂,但是matlab直接调用fft和fft2这个确实很方便

s=fftshift(fft2(img_noise));

这句话实现的是将低频转移到图像的中间,因为采用fft2变换后的图像高频在中间,低频段分散到四个角落

[a,b] = size(img);

a0 = round(a/2);

b0 = round(b/2)

一开始我也没搞明白这是干嘛的,后来明白了就茅塞顿开,这是在求解图形的中心点,之后的距离计算和滤波都与这个点有关

for i=1:a

for j=1:b

distance = (i-a0)^2+(j-b0)^2;

if distance

h = 1;

else

h = 0;

end

low_filter(i,j) = h*s(i,j);

end

end

这里就是基于距离进行滤波,所谓低通就是把距离中心点近的值进行保留,那么同理高通就是把距离远的值保留,这里当然可以直接采用fft2变换之后的图像进行处理,这样应该更方便。至于什么带通带阻都是大同小异

最后展示一下结果

matlab 对图像进行低通滤波,matlab图像处理实现低通滤波_第1张图片

matlab图像处理实现低通滤波相关教程

在matlab中利用遗传算法(GA)求取函数全局最大值

在matlab中利用遗传算法(GA)求取函数全局最大值 遗传算法的简单实现 今天学习了遗传算法,其最大的特点就是能求取全局最优值,但是算法随机性高,对连续定义域很难求得精确解,本文仅参考遗传算法的思想,在整数范围内,来求取函数全局最大值 首先回顾一下

【web前端】17.实现点击跳转锚点部分(vue)

【web前端】17.实现点击跳转锚点部分(vue) div class=big-data-content-bottom section class=content-bottom-one id=one p class=content-bottom-one-title平台技术框架/p p class=content-bottom-one-contentnbsp;nbsp;nbsp;nbsp; 海隆行建在Hadoop分布式文

数字图像处理锐化的原理_数字图像锐化的工作原理以及为什么要使

数字图像处理锐化的原理_数字图像锐化的工作原理以及为什么要使用它 数字图像处理锐化的原理 ( Why Exactly Are Images Fuzzy in the First Place? ) Before we dig into how to sharpen your images it is important to understand exactly why digital ima

android连网详解——android.net、org.apache.http联网实现

android连网详解——android.net、org.apache.http联网实现 为什么80%的码农都做不了架构师? 1.连网相关包介绍 今天我们将深入介绍了Android SDK 中一些与网络有关的package,如下: 包描述 java.net 提供与联网有关的类,包括流和数据包(datagram)sockets

一致性hash算法原理及php实现

一致性hash算法原理及php实现 在使用分布式存储时我们要考虑如何将数据均匀分布在多个节点库中?并且也要方便后期的数据查找。 hash取模 假设有N个存储节点,根据用户传入的key(key具有唯一性),index = hash(key) % N计算出将数据存储在哪一个节点上。 一

重学数据结构-二分搜索树及它的各种操作(kotlin实现)

重学数据结构-二分搜索树及它的各种操作(kotlin实现) 在开始之前,应该先讲一下什么是二叉树。 什么是二叉树? 和链表一样,同样也是动态数据结构 二叉树具有唯一的根节点 class NodeE { var e: E? = null var left: NodeE? = null var right: NodeE? = null}

实现较低的计时器粒度以重传TCP(RTO):时间轮算法如何减少开销

实现较低的计时器粒度以重传TCP(RTO):时间轮算法如何减少开销 《TCP/IP协议栈:TCP超时重传机制》 Table of Contents 计时器轮算法 使用计时器轮算法实现RTO 概要 AIX传输控制协议(TCP)为每个连接维护七个计时器: 建立连接 重传 延迟确认(ACK) 持久

【C语言程序设计】C语言实现一元二次方程的求解

【C语言程序设计】C语言实现一元二次方程的求解 一元二次方程的一般形式: 分析求解过程: 当a=0,不能构成一元二次方程。 当b=0,不一定能构成等式 当c=0,即为恒等式0=0 当a不等于0,可构成一元二次方程,考虑实根和虚根 基于伪代码,实现一元二次方程的求

你可能感兴趣的:(matlab,对图像进行低通滤波)