空间域图像增强处理-含Labview程序

news2025/7/11 18:42:04

⭕⭕ 目 录 ⭕⭕

  • ✳️ 一、引言
  • ✳️ 二、领域图像增强实例分析
    • ✳️ 2.1 线性滤波实例分析
    • ✳️ 2.2 非线性滤波实例分析
    • ✳️ 2.3 Canny边缘检测
  • ✳️ 三、Labview程序获取

✳️ 一、引言

图像在其采集或传递过程中常会受到各种噪声的影响,这会导致其中包含的重要信息很难被读取和识别。例如,不均匀的光照会使图像灰度过于集中,摄像头的数模转换电路所产生的噪声会使图像质量降低,图像显示设备的局限性会造成图像显示颜色减少,等等。因此,在对图像进行分析处理之前,必须对图像进行增强,,使其更适合人或机器进一步分析处理。

图像增强是图像处理的一个重要分支。它针对给定图像的应用场合,通过各种算法增强图像中的有用信息,有目的地强调图像的整体或局部特性,抑制不感兴趣的区域,扩大图像中不同特征之间的差别,改善图像质量,加强图像判读和识别效果,使图像更能满足分析或机器决策的需要。

图像增强算法根据处理过程所在的空间不同,可分为基于空间域的算法和基于频率域(变换域)的算法两大类,如图1所示。空间域图像增强算法直接对图像进行点运算或邻域处理。点运算直接对像素灰度进行点对点映射,常见的点运算包括灰度变换、直方图匹配(修正)和直方图均衡,以及某些图像的算数或逻辑运算等。图像的邻域增强则以某一像素为中心,综合该像素及其周围某一范围内(邻域)像素的灰度值进行计算,并将计算结果作为中心像素新的灰度值。根据输出像素是否是输入像素及其邻域内像素的线性组合,可将图像邻域增强方法分为线性和非线性两大类。每一类方法又可分为低通滤波和高通滤波方法。低通滤波算法可以滤除图像中的高频噪声,使其变得更平滑;高通滤波则可以增强图像中目标的轮廓或边缘等高频细节,使其更锐化。

频率域图像增强算法把图像看成一种二维信号,使用二维傅里叶变换将其变换至频率域进行处理,然后再变换回空间域。例如,可将图像变换至频率域后仅保变换域的低频部分(低通滤波),然后再将其变换回频率域,以实现滤除图中高频噪声的效果;也可以只保留高频部分(高通滤波),使图像的轮廓或细节更清晰、锐化。由此可见,频率域图像增强算法是种间接形式的处理方法。

除了为图像理解和机器识别、决策作准备外,图像增强自身的应用领域也十分广阔。例如,在军事应用中,可增强红外图像中感兴趣的敌军目标;在医学应用中,可增强Ⅹ射线所拍摄的患者脑部、胸部图像来确定病症的准确位置;在空间应用中,对用太空照相机传回的图像进行增强处理以改善图像的质量;在农业应用中,增强遥感图像以了解农作物的分布。在交通应用中,对大雾天气图像进行增强以加强车牌、路标等重要信息进行识别;等等。

在这里插入图片描述

图1 图像增强算法分类

✳️ 二、领域图像增强实例分析

图像常被各种随机噪声污染,如椒盐(salt& pepper)噪声、脉冲噪声、高斯噪声等。椒盐噪声会导致图像中有随机出现的黑点或白点;脉冲噪声则使图像中只含有随机的白点(正脉冲噪声)或黑点(负脉冲噪声);与前两者不同,高斯噪声则会使图像含有强度服从高斯正态分布的噪声。在正式对图像进行识别并做出决策前,需要滤除各种噪声并突出需要识别的各种特征。图像的邻域增强,就是在空间域对其进行高通或低通滤波,以消除其中的噪声,锐化图像的轮廓,沿某一方向锐化目标的边缘等。

图像的空间域滤波直接根据像素及其周围邻域内的像素值,通过某种计算或变换得到新的像素值来实现滤波功能。如果输岀像素是输人像素及其邻域像素的线性组合,则称为线性滤波,否则称为非线性滤波(中值滤波、边缘保持滤波等)。例如,基于卷积的图像邻域加权求和滤波就是一种空间域的线性滤波方法,而中值滤波等非加权计算形式的滤波则为非线性滤波。

一般来说,线性平滑滤波对去除各种噪声(如高斯噪声)较为有效。但是当信号频谱与噪声频谱混叠,或者当信号中含有非叠加性噪声时(如由系统非线性引起的噪声或非髙斯噪声等),线性滤波在滤除噪声时,总会以某种方式模糊图像中的边缘和细节,进而降低图像中线性特征的可识别性。非线性滤波器常基于某种非线性映射关系,把某一特定的噪声近似地映射为零而保留信号的重要特征,因而其在一定程度上能克服线性滤波器的不足之处。

✳️ 2.1 线性滤波实例分析

机器视觉系统开发过程中,常用的基于卷积计算的线性滤波方法有线性梯度算子(Linear gradient)、拉普拉斯算子(Laplacian)、平滑滤波( Smoothing)和高斯算子(Gaussian)4种。其中,前两种方法用于锐化图像中灰度变化较快的高频边缘或纹理细节;后两种方法则用于滤除高频噪声和细节,使图像更平滑。

邻域增强中的线性滤波多基于卷积运算,卷积核的尺寸限定了处理时的邻域大小,卷积核中的元素值设定了各邻域像素对中心像素影响的权重值,其绝对值越大,对中心像素的影响越大。如果卷积核中的因子有正有负,则滤波过程相当于邻域像素求权重差,其效果相当高通滤波;而如果卷积核中只有正因子,那么滤波过程相当相当于邻域像素求权重和,其效果相当低通滤波。线性梯度、 Laplacian算子属于前一类,而高斯和平滑滤波属于后者。

在这里插入图片描述

图2 线性梯度算子的高通滤波结果

在这里插入图片描述

图3 线性高斯低通滤波结果

✳️ 2.2 非线性滤波实例分析

非线性滤波方法也可分为进行边缘检测的高通滤波和去除图像中杂散点的低通滤波两大类。常用的非线性边缘检测(高通)方法有非线性梯度(Nonlinear gradient)、Roberts、差值(Differentiation)、Sobel、Prewitt、Sigma和Canny7种。非线性低通滤波方法则有中值(Median)滤波、N阶(Nth Order)滤波器、低通(Lowpass)滤波3种。

结果如下图所示:

在这里插入图片描述

图4 非线性梯度高通滤波结果

在这里插入图片描述

图5 基于Nth的非线性低通滤波结果

✳️ 2.3 Canny边缘检测

在 Canny算法中,利用非极大值抑制来进行边缘检测,以去除伪边缘点。通过非极大值抑制后,常会得到一个二值图像,非边缘的点灰度值均为0,可能为边缘点的局部灰度极大值点被设置为某一固定灰度值。但是,这一结果仍包含了很多由噪声及其他原因造成的假边缘,,因此还需要进一步处理。

Canny算法采用高、低双阈值法减少假边缘点的数量。若某一像素位置的值超过高阈值,该像素被保留为边缘点;若小于低阈值,则被去除;若在两个阈值之间,则仅当像素与个高于高阈值的像素连接时才被保留。 Canny算法推荐高、低阈值的比例在2:1到3:1之间。图6为显示了使用 IMAQ Canny Edgedetection对rice.png进行边缘检测的实例由图中所示的结果可以看出, Canny边缘检测算法可以较为准确、有效地确定图像的边缘。

在这里插入图片描述

图6 基于Canny的边缘检测结果

Canny边缘检测算法通过高斯平滑滤波有效地去除图像中可能存在的噪声,通过寻找梯度亮度检测出图像存在的边缘特征,通过非极大抑制和滞后阈值法高效地去除边缘中存在的伪边缘和虚假边缘,在抑制噪声和保持边缘连续性方面取得了很好的平衡。但在噪声抑制的过程中,高斯模板的选取直接关系到图像的处理效果。模板选取越大,噪声抑制效果就越好,图像也越平滑,但边缘定位也越不精确,同时计算量也显著增加,处理速度变慢,这对于要求实时处理的图像就无法满足。模板选取得小,噪声抑制效果就差,虚假边缘出现的几率高,但边缘定位相对精确,处理速度快。因此选取合适的高斯平滑模板是 Canny边缘检测算法的关键,通常选取3×3或5×5的模板即可。

✳️ 三、Labview程序获取

上述所演示Labview程序,可私信博主获取:


博主简介:研究方向涉及智能图像处理、深度学习等领域,先后发表过多篇SCI论文,在科研方面经验丰富。任何与算法程序科研方面的问题,均可私信交流讨论


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

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

相关文章

忘机工尺谱 - 快速打谱软件

引言 为了实现高效快速打谱,我实现了一种词谱分离的输入方案,解决了当前工尺谱平台打谱过程频繁切换输入法和频繁点击鼠标等问题,大大提高了打谱效率。同时借鉴了Markdown编辑器”所见即所得“的思想,输入的同时可以见到排版后的…

java线程控制

java线程控制的语法很多 这里我们主要说以下三个方法 我们先新建一个包 包下建立两个类 customException 线程类 参考代码如下 public class customException extends Thread {public String name;public customException(){}public void run(){for(int i 0;i < 100;i)…

逆变器电力计量仪表可安装在分布式光伏运维云平台、光伏变电站

安科瑞 李可欣 1、概述 AcrelCloud-1200分布式光伏运维云平台通过监测光伏站点的逆变器设备&#xff0c;气象设备以及摄像头设备、帮助用户管理分散在各地的光伏站点。主要功能包括&#xff1a;站点监测&#xff0c;逆变器监测&#xff0c;发电统计&#xff0c;逆变器一次图&…

解决找不到依赖项的问题(根源直接解决)

&#xff08;文章最后&#xff0c;我会介绍一个万能解决方法&#xff09; 问题&#xff1a; 原因&#xff1a; &#xff08;1&#xff09;可能是你的本地仓库里没有该依赖项。 &#xff08;2&#xff09;如果有的话&#xff0c;可能是没有更新同步到idea 解决方法&#xff1…

基于Springboot+mybatis+mysql+html教育培训中心教学系统

基于Springbootmybatismysqlhtml教育培训中心教学系统一、系统介绍二、功能展示1.用户登陆2.用户注册3.个人中心4.人员信息管理5.课程管理6.缴费管理7.学生考勤管理8.器材管理9.问题管理&#xff08;学生、老师&#xff09;一、系统介绍 系统主要功能&#xff1a; 管理员&…

第五届“传智杯”全国大学生计算机大赛(练习赛)[传智杯 #5 练习赛] 时钟

[传智杯 #5 练习赛] 时钟 题目描述 你有一个电子钟&#xff0c;可以显示 0:00 到 23:59 之间的所有时间&#xff0c;以数字的形式显示。其中小时是 0 到 23&#xff08;0 时会显示一个 0&#xff0c;而 1 到 9 时不会显示前导 0&#xff09;&#xff0c;分钟是 00 到 59&…

矩阵分析与计算学习记录-矩阵函数

本章重点内容&#xff1a; 矩阵函数的定义和计算 矩阵函数的导数和积分&#xff1a;导数定义和性质、对矩阵变量的导数、矩阵函数的积分及其性质 利用矩阵函数求解线性常系数微分方程&#xff1a;一阶线性常系数微分方程、n阶线性常系数微分方程 1. 矩阵函数的定义和计算 1…

前端面试总结

自我检查&#xff1a; 1、 vue有哪些常用的指令 2、 v-if和v-show的区别? v-show 控制的哪个css元素?v-if和v-show初始条件都为false的时候哪个会加载? 3、 3.Vue常用的修饰符? .sync 怎么在子组件触发修改父组件属性的值?具体是$emit哪个事件触发修改? .sync 的原理有了…

栈的应用----括号匹配问题

1.题目 括号匹配 给定一个只包括 ‘(’&#xff0c;‘)’&#xff0c;‘{’&#xff0c;‘}’&#xff0c;‘[’&#xff0c;‘]’ 的字符串 s &#xff0c;判断字符串是否有效。 有效字符串需满足&#xff1a; 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合…

Linux常见指令与shell理解

Linux常用指令与shell理解 文章目录Linux常用指令与shell理解1. ls指令2. cd指令3. pwd命令4. touch指令5. mkdir指令6. rmdir和rm指令7. man指令8. cp指令9. mv指令10. cat与tac指令11. more指令12. less指令13. head指令14. tail指令15. 时间指令16. Cal指令17. find指令18. …

[附源码]SSM计算机毕业设计置地房屋租赁信息系统JAVA

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

2E服务-WriteDataByIdentifier

诊断协议那些事儿 诊断协议那些事儿专栏系列文章&#xff0c;本文介绍数据传输服务下的2E服务WriteDataByIdentifier&#xff0c;允许客户端在通过提供的dataidentifier数据标识符指定的内部位置将信息写入服务器。 参考文章&#xff1a; 数据传输功能单元——DID参数定义 2…

汇编语言与微机原理 期末复习题整理(大题)

写出实现下列计算的指令序列。&#xff08;假定X、Y、Z、W、R都为有符号字变量&#xff09; Z 2*&#xff08;W-X&#xff09;/&#xff08;5*Y&#xff09; ;因为(5*Y)会出现32位变量&#xff0c;32位变量不能作为除数&#xff0c;所以需要改变运算顺序 MOV AX,W ;AX←W S…

【算法05】合并两个有序链表

目录 问题 思路 版本一 版本二 答案 版本一 版本二 问题 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1&#xff1a; 输入&#xff1a;l1 [1,2,4], l2 [1,3,4] 输出&#xff1a;[1,1,2,3,4,4] 示例二&a…

[附源码]java毕业设计球队管理系统论文

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

四十三、Fluent增强收敛性-伪瞬态计算

0. 伪瞬态作用 为什么要使用伪瞬态的算法&#xff1f;伪瞬态的作用实际上是增加收敛性的&#xff0c;当你的稳态计算收敛性不好时&#xff0c;可以将稳态计算更改为伪瞬态计算&#xff0c;收敛性会增强。 当然还可以通过前面所说的降低松弛因子的方式来增强收敛性。 但是&#…

Contextual Transformer Networks for Visual Recognition

Contextual Transformer Networks for Visual Recognition一、引言&#xff08;一&#xff09;、Our Approach&#xff08;二&#xff09;、Multi-head Self-attention in Vision Backbones二、Contextual Transformer Block&#xff08;一&#xff09;、Contextual Transforme…

分享125个ASP源码,总有一款适合你

源码下载链接&#xff1a;https://pan.baidu.com/s/1qgovtTI3srp2A8oJKGxWlA?pwdpkhu 提取码&#xff1a;pkhu 下面是文件的名字&#xff0c;我放了一些图片&#xff0c;文章里不是所有的图主要是放不下...&#xff0c;大家下载后可以看到。 康城汽车租赁类网站系统 淘特 旅…

MySQL数据库面试题

基础知识 为什么要使用数据库/数据库的优点&#xff1f; 使用数据库可以高效且条理分明地存储数据&#xff0c;它使人们能够更加迅速和方便地管理数据&#xff0c;主要体现在以下几个方面。 数据库可以结构化存储大量的数据信息&#xff0c;方便用户进行有效的检索和访问。数…

docker介绍及使用

简介 Docker 是一个开源的应用容器引擎&#xff0c;让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。 原理 Docker核心解决的问题是利用L…