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和fft这个真的很方便
s=fftshift(fft2(img_noise));
由于使用,这句话实现了将低频转移到图像中间fft图像高频在中间,低频分散到四个角落
[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使用遗传算法(GA)全球最大值求取函数
在matlab使用遗传算法(GA)全球最大值求取函数 简单实现遗传算法 今天学习了遗传算法,其最大的特点就是能求取全局最优值,但是算法随机性高,对连续定义域很难求得精确解,本文仅参考遗传算法的思想,在整数范围内,来全球最大值求取函数 首先回顾一下
【web17.点击跳转锚点(vue)
【web17.点击跳转锚点(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时,可以构成一元二次方程 基于伪代码,实现一元二次方程的要求