社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

【深度学习】机器视觉边缘模式检测

机器学习初学者 • 1 年前 • 298 次点击  

图像边缘是两个具有不同灰度的均匀图像区域的边界,边缘检测是图像处理的基本问题,目的是标识数字图像中亮度变化明显的边缘点,不断向上构成更高层次的特征描述。并且剔除不相关的特征信息,保留图像重要的结构属性。



在视觉计算理论框架中,抽取二维图像上的边缘、角点、纹理等基本特征,是整个系统框架中的第一步,图像中局部灰度级以简单的方式作极快变换的小区域特征所组成的图称为基元图,在不同"尺度"意义下的边缘点,在一定条件下包含了原图像的全部信息。



检测原理
基本思想是通过检测每个像素和其邻域的状态,以决定该像素是否位于一个物体的边界上。如果一个像素位于一个目标物体的边界上,则其邻域像素的灰度值的变化就比较大,可以通过细微的间距移动狭窄的区段,检测每个点的边缘宽度与边缘位置,确定目标对象的边界。



检测方法

滤波

边缘检测算法主要是基于图像强度的一阶和二阶导数,但导数的计算对噪声很敏感,因此使用滤波器来改善与噪声有关的边缘检测器的性能。大多数滤波器在降低噪声的同时也导致了边缘强度的损失,因此,增强边缘和降低噪声之间需要折中。



增强
边缘增强一般是通过计算梯度幅值来完成,增强边缘的基础是确定图像各点邻域强度的变化值。增强算法可以将邻域(或局部)强度值有显著变化的点突显出来。



检测

在图像中有许多点的梯度幅值比较大,这些点在特定的应用领域中并不都是目标边缘,所以应该用某种算法来确定哪些点是边缘点。



定位
边缘的位置可在子像素分辨率上来估计,边缘的方位也可以被估计出来。大多数场合下,仅仅需要边缘检测器指出边缘出现在图像某一像素点的附近,而没有必要指出边缘的精确位置或方向。



算法应用
可以将边缘定义为图像中灰度发生急剧变化的区域边界,图像灰度的变化情况可以用图像灰度分布的梯度来反映,因此我们可以用局部图像微分技术来获得边缘检测算子。而边缘检测的实质是采用某种算法来提取出图像中对象与背景间的交界线。



在图像边缘检测中,抑制噪声和边缘精确定位是无法同时满足的,一些边缘检测算法通过平滑滤波去除噪声的同时,也增加了边缘定位的不确定性。而提高边缘检测算子对边缘的敏感性的同时,也提高了对噪声的敏感性。



如上述所说,一阶算子检测边缘,如Robert,虽然对边缘定位精度较高,但是容易丢失边缘,对噪声无抑制能力。又如Sobel,对噪声仅有一点抑制能力,但无法完全排除虚假边缘。又如二阶拉普拉斯算子,对噪声响应很高。或者改进后的高斯-拉普拉斯算法,虽然经过高斯模糊,但是这些模糊不能完全去除噪声,没处理的好,反而会影响边缘检测的效果。


来源:西安德伍拓


本文仅做学术分享,如有侵权,请联系删文。




    
往期 精彩回顾




Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/162212
 
298 次点击