机器视觉技术与应用实战(Chapter Two-03)

2.5 图像滤波和增强

滤波的作用是:图像中包含需要的信息,也包含我们不感兴趣或需要屏蔽的干扰,去掉这些干扰需要使用滤波。

增强的作用是:通过突出或者抑制图像中某些细节,减少图像的噪声,增强图像的视觉效果。

对于空间域和频率域的专业解释如下:

空间域,又称图像空间,由图像像元组成的空间。在图像空间中以空间长度为自变量,直接对像元值进行处理称为空间域处理。

频率域,可以将一幅图像像元值在空间上的变化分解为具有不同振幅、空间频率和相位的简振函数的线性叠加,图像中各种频率成分的组成和分布称为空间频谱。也就是通常说的频谱图,描述了信号的频率结构及频率与该频率信号幅度的关系。

我的理解是这样的:

空间域和频域是表达图像的两种方式,图像还是同一个图像,它们是通过傅里叶变换进行转换,这个也是傅里叶变换在数字图像中最重要的地方。空间域关注的是图像的像素和它们的排列,而频域关注的是图像中的不同的频率的成分。空间域里面的像素值是它们的灰度值(即亮度),我们在空间域里面使用的方法有图像灰度修正、图像平滑、中值滤波,这些都是对像素灰度值进行处理。频域关注的点不同,它帮助我们分析图像中的纹理和结构,高频部分代表着边缘和细节,而低频部分代表着图像平滑区域(变化小的区域),在频域里面使用的方法有高通滤波、低通滤波等。

学习了解一下频谱,频谱可以在一定程度上展示频率的分布,用matlab对两张图像进行频谱分析,一张细节比较多(二维码),一张细节少:

       

代码如下:

img = imread('1.bmp');%1.bmp为灰度图像或二值图像
f = fft2(img);% FFT频谱中心化
f = fftshift(f);
% magnitude
mag = abs(f);
% phase
phase = angle(f);
% plot
subplot(211);imshow(img);title('riginal image');axis on;
subplot(212);imshow(log(mag+1),[]);title('Magnitude spectrum');axis on;

效果如下:

             

通过观察傅立叶变换后的频谱图,我们可以看出图像的能量分布,如果频谱图中暗的点数更多,那么实际图像是比较柔和的(因为各点与邻域差异都不大,梯度相对较小),反之,如果频谱图中亮的点数多,那么图像是尖锐的,细节纹理多的。正好印证了图一细节多,图二细节少情况。

———————————————————————————————————————————

空间域法:

1、图像修正可以使图像在空间域中增强,常见在3种情况:当图像成像不均匀(半边暗、半边亮)而对图像逐点进行不同程度的灰度修正,使灰度均衡;当图像部分或者整体曝光不足而进行灰度级修正,这样可以增强对比度;对于灰度直方图的修正,可以达到预期的图像特征,图像均衡化就是这类方法。

2、图像平滑对包含某点的一个小区域的各点灰度值进行平均值计算,用所得到的平均值代替该点的灰度值,这就是平时所说的平滑处理。如邻域平均法的3X3模板:

邻域平均处理的方法是以图像模糊为代价减小噪声,模板的尺寸越大,噪声减少得越显著。它的作用就是:使邻域灰度均匀,起到平滑灰度的作用。

3、中值滤波:采用一个含有奇数个点的滑动窗口,用窗口的各点灰度值的中值代替指定点(一般中心点)的灰度值。它的作用:处理图像噪声和脉冲干扰。但是对于细节多的图像不宜采用中值滤波。visionpro不能给图片加噪声,我拿以下visionpro里面的图片实现了一下中值滤波:

I = imread('3.bmp'); % 读取彩色图像
J=imnoise(I,'gaussian',0,0.01);%向图像I添加均值为0,方差为0.01的高斯白噪声。
img=imnoise(J,'salt & pepper',0.05);%向图像I添加强度为0.05的椒盐噪声。
% 对红、绿、蓝三个通道分别进行中值滤波
r1 = medfilt2(img(:,:,1), [3 3]);%3*3窗口
g1 = medfilt2(img(:,:,2), [3 3]);
b1 = medfilt2(img(:,:,3), [3 3]);
img1 = cat(3, r1, g1, b1);
r2 = medfilt2(img(:,:,1), [5 5]);%5*5窗口
g2 = medfilt2(img(:,:,2), [5 5]);
b2 = medfilt2(img(:,:,3), [5 5]);
img2 = cat(3, r2, g2, b2);
r3 = medfilt2(img(:,:,1), [7 7]);%7*7窗口
g3 = medfilt2(img(:,:,2), [7 7]);
b3 = medfilt2(img(:,:,3), [7 7]);
img3 = cat(3, r3, g3, b3);
subplot(2,2,1), imshow(img), title('原始图像');
subplot(2,2,2), imshow(img1), title('3*3滤波后的图像');
subplot(2,2,3), imshow(img2), title('5*5滤波后的图像');
subplot(2,2,4), imshow(img3), title('7*7滤波后的图像');

效果如下,原始图像是加了高斯噪声和椒盐噪声的:

频率域法:图像频域法通常是先对图像进行傅里叶变换,再对图像的频谱进行某种修正(如滤波),最后再修正图像进行傅里叶变换回到空间域中,从而达到增强图像的效果。它的好处是:把时域里面复杂卷积的滤波操作变成频率域里简单的乘积操作。

低通滤波器和高通滤波器:低通滤波器抑制频谱高频成分,让低频成分通过,起到了突出背景或平滑图像的作用。高通滤波器抑制图像频谱低频信号而保留高频信号,起到了图像锐化作用。H(u,v)是传递函数,D0代表了截止频率,D(u,v)代表了点(u,v)到频率原点(0,0)(u=v=0)的距离。

理想低通滤波器:

 其图像如下:

理想高通滤波器:

其图像如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/283178.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

人工智能在金融与商业领域的智能化变革

导言 随着人工智能技术的不断发展,金融和商业领域正迎来一场智能化的变革。随着人工智能的不断发展,其在金融和商业领域的应用正成为业界瞩目的焦点。本文将深入探讨人工智能在金融和商业应用中的关键技术、应用场景以及对未来的影响。 1. 关键技术与算…

【TB作品】51单片机,具有报时报温功能的电子钟

2.具有报时报温功能的电子钟 一、功能要求: 1.显示室温。 2.具有实时时间显示。 3.具有实时年月日显示和校对功能。 4.具有整点语音播报时间和温度功能。 5.定闹功能,闹钟音乐可选。 6.操作简单、界面友好。 二、设计建议: 1.单片机自选(C51、STM32或其他单片机)。 2.时钟日历芯…

[密码学]AES

advanced encryption standard,又名rijndael密码,为两位比利时数学家的名字组合。 分组为128bit,密钥为128/192/256bit可选,对应加密轮数10/12/14轮。 基本操作为四种: 字节代换(subBytes transformatio…

计算机网络:数据链路层(VLAN)

今天又学到一个知识,加油! 目录 一、传统局域网的局限(促进VLAN的诞生) 二、VLAN简介 三、VLAN的实现 总结 一、传统局域网的局限(促进VLAN的诞生) 缺乏流量隔离:即使把组流量局域化道一个单一交换机中…

STM32F103RCT6开发板M3单片机教程06--定时器中断

前言 除非特别说明,本章节描述的模块应用于整个STM32F103xx微控制器系列,因为我们使用是STM32F103RCT6开发板是mini最小系统板。本教程使用是(光明谷SUN_STM32mini开发板) STM32F10X定时器(Timer)基础 首先了解一下是STM32F10X…

Linux---远程登录、远程拷贝命令

1. 远程登录、远程拷贝命令的介绍 命令说明ssh远程登录scp远程拷贝 2. ssh命令的使用 ssh是专门为远程登录提供的一个安全性协议,常用于远程登录,想要使用ssh服务,需要安装相应的服务端和客户端软件,当软件安装成功以后就可以使…

智能五子棋1

*一、项目需求* 五子棋是一种简单的黑白棋,历史悠久,起源于中国,后传入日本,在日本被称为“连珠”,是一种老少皆宜的益智游戏。 人工智能五子棋系统的目标用户是一切想致力于研究人机对弈算法理论的相关研究者和一切…

直播江湖:东方甄选与董宇辉的权力游戏

出品| 大力财经 文 | 魏力 近期,围绕东方甄选的小作文事件引起了广泛关注,有人将其解读为一场巧妙策划的事件营销,然而,舆情的不可控性使得事态逐渐演变为一场复杂的利益博弈。 东方甄选与董宇辉的“蜜月期”可以说是双方互相成就…

股票价格预测 | Python实现基于Stacked-LSTM的股票预测模型,可预测未来(keras)

文章目录 效果一览文章概述模型描述源码设计效果一览 文章概述 以股票价格预测为例,基于Stacked-LSTM的股票预测模型(keras),可预测未来。 模型描述 LSTM 用于处理序列数据,如时间序列、文本和音频。相对于传统的RNN,LSTM更擅长捕获长期依赖关系,

Docker插件和扩展:深入Docker功能的完整指南

Docker作为一种流行的容器化技术,不仅令应用程序的部署更为便捷,同时也提供了丰富的插件和扩展机制,以满足更多复杂场景下的需求。本文将深入研究Docker的插件和扩展,提供更为详实和全面的示例代码,助力读者更好地理解…

jmeter判断’响应断言‘两个变量对象是否相等

1、首先需要设置变量,json、正则、csv文件等变量 2、然后在响应断言中 ①JMeter Variable Name to use —— 输入一个变量,变量名即可 ② 模式匹配规则 ——相等 ③测试模式 ——输入引用的变量命${变量名} (注意这里是需要添加一个测试模式…

C# 命令行参数解析库示例

写在前面 在日常开发中,我们经常会用到命令行参数,比如cmd下的各种指令;还有C#的控制台类型的项目,在默认入口Main函数中,那个args参数,就是有系统传入到程序进程的命令行参数;在传入的参数相对…