机器视觉技术与应用实战(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.mzph.cn/news/229538.shtml

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

相关文章

Jenkins----基于 CentOS 或 Docker 安装部署Jenkins并完成基础配置

查看原文 文章目录 基于 CentOS7 系统部署 Jenkins 环境基于 Docker 安装部署 Jenkins环境配置 Jenkins 中文模式配置用户名密码形式的 Jenkins 凭据配置 ssh 私钥形式的 Jenkins 凭据配置 Jenkins 执行任务的节点 基于 CentOS7 系统部署 Jenkins 环境 (1&#xff…

使用Nginx实现负载均衡的实践指南

目录 前言1 负载均衡简介2 需要实现的效果3 准备2个tomcat服务器4 配置Nginx实现负载均衡5 Nginx的服务器策略5.1 轮询(默认)5.2 权重(weight)5.3 IP哈希(ip_hash)5.4 响应时间公平分配(fair&am…

C# DotNetCore AOP简单实现

背景 实际开发中业务和日志尽量不要相互干扰嵌套,否则很难维护和调试。 示例 using System.Reflection;namespace CSharpLearn {internal class Program{static void Main(){int age 25;string name "bingling";Person person new(age, name);Conso…

Day63力扣打卡

打卡记录 寻找最近的回文数(模拟) 链接 class Solution:def nearestPalindromic(self, n: str) -> str:m len(n)candidates [10 ** (m - 1) - 1, 10 ** m 1]selfPrefix int(n[:(m 1) // 2])for x in range(selfPrefix - 1, selfPrefix 2):y …

[强网杯 2019]Upload

[强网杯 2019]Upload 开放注册直接注册一个账号然后登录进去 先对页面进行简单文件上传测试发现都不存在漏洞对网站进行目录扫描 发现www.tar.gz 打开发现是tp5框架发现源码 这里如果前面信息收集的完整会发现存在反序列化 对注册,登录,上传文件页面分…

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

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

时序预测 | Python实现GRU-XGBoost组合模型电力需求预测

时序预测 | Python实现GRU-XGBoost组合模型电力需求预测 目录 时序预测 | Python实现GRU-XGBoost组合模型电力需求预测预测效果基本描述程序设计参考资料预测效果 基本描述 该数据集因其每小时的用电量数据以及 TSO 对消耗和定价的相应预测而值得注意,从而可以将预期预测与当前…

Linux:超级管理员(root用户)创建用户、用户组

root用户: 拥有最大的系统操作权限,而普通用户在许多地方的权限是受限的。 演示: 1、使用普通用户在根目录下创建文件夹(失败) 2、切换到root用户后,继续尝试(成功) 3、普通用户的权限&#…

TCP/IP详解——DNS 流量分析

文章目录 1. DNS 流量分析1.1 DNS 基本概念1.2 DNS 系统特性1.3 DNS 效率问题1.4 域名的组成1.5 域名解析系统1.5.1 域名解析过程 1.6 DNS 记录种类1.7 DNS 的报文格式1.7.1 DNS 报文中的基础结构部分1.7.2 DNS 查询报文中的问题部分1.7.3 DNS 响应报文中的资源记录部分1.7.4 示…

【开源项目】WPF 扩展 -- 多画面视频渲染组件

目录 1、项目介绍 2、组件集成 2.1 下载地址 2.2 添加依赖 3、使用示例 3.1 启动动画 3.2 视频渲染 3.3 效果展示 4、项目地址 1、项目介绍 Com.Gitusme.Net.Extensiones.Wpf 是一款 Wpf 扩展组件。基于.Net Core 3.1 开发,当前是第一个发布版本 1.0.0&am…

Java架构师系统架构内部维度分析

目录 1 导语2.1 安全性维度概述2.2 流程安全性2.3 架构安全性2.4 安全维度总结3 伸缩性维度概述和场景思路3.1 无状态应用弹性伸缩3.2 阿里云Knative弹性伸缩3.3 有状态应用弹性伸缩3.4 伸缩性维度总结想学习架构师构建流程请跳转:Java架构师系统架构设计 1 导语

数据仓库与数据挖掘c5-c7基础知识

chapter5 分类 内容 分类的基本概念 分类 数据对象 元组(x,y) X 属性集合 Y 类标签 任务 基于有标签的数据,学习一个分类模型,通过这个分类模型,可以把一组属性x映射到一个特定的类别y上 类别y 提前设定好的--如:学生…

git 切换远程地址分支 推送到指定地址分支 版本回退

切换远程地址 1、切换远程仓库地址: 方式一:修改远程仓库地址 【git remote set-url origin URL】 更换远程仓库地址,URL为新地址。 git remote set-url https://gitee.com/xxss/omj_gateway.git 方式二:先删除远程仓库地址&…

八股文打卡day2——计算机网络(2)

面试题:讲一下三次握手的过程? 我的回答: 1.客户端发送报文段到服务器,主动建立连接。这个报文段中SYN标志位表示:这个报文段是用于连接的,此时SYN标志位设置为1。其中初始序列号字段包含了客户端的初始序…

华为鸿蒙应用--欢迎页SplashPage+倒计时跳过(自适应手机和平板)-ArkTs

鸿蒙ArkTS 开发欢迎页SplashPage倒计时跳过,可自适应平板和手机: 一、SplashPage.ts import { BreakpointSystem, BreakPointType, Logger, PageConstants, StyleConstants } from ohos/common; import router from ohos.router;Entry Component struct…

2023/12/17 初始化

普通变量(int,float,double变量)初始化: int a0; float b(0); double c0; 数组初始化: int arr[10]{0}; 指针初始化: 空指针 int *pnullptr; 被一个同类型的变量的地址初始化(赋值) int…

饥荒Mod 开发(十四):制作屏幕弹窗

饥荒Mod 开发(十三):木牌传送 在上一个文章里面制作了一个传送选择页面,是一个全屏的窗口,那饥荒中如何制作一个全屏的窗口,下面介绍一下如何从零开始制作一个全屏窗口 制作屏幕窗口 饥荒中的全屏窗口都有一个基类 “Screen”,我…

结构型设计模式(一):门面模式 组合模式

门面模式 Facade 1、什么是门面模式 门面模式(Facade Pattern)是一种结构型设计模式,旨在为系统提供一个统一的接口,以便于访问子系统中的一群接口。它通过定义一个高层接口,简化了客户端与子系统之间的交互&#xf…

优质全套SpringMVC教程

三、SpringMVC 在SSM整合中,MyBatis担任的角色是持久层框架,它能帮我们访问数据库,操作数据库 Spring能利用它的两大核心IOC、AOP整合框架 1、SpringMVC简介 1.1、什么是MVC MVC是一种软件架构的思想(不是设计模式-思想就是我们…

【具身智能评估3】具身视觉语言规划(EVLP)度量标准汇总

参考论文:Core Challenges in Embodied Vision-Language Planning 论文作者:Jonathan Francis, Nariaki Kitamura, Felix Labelle, Xiaopeng Lu, Ingrid Navarro, Jean Oh 论文原文:https://arxiv.org/abs/2106.13948 论文出处:Jo…