数字图像处理:边缘检测(Edge detection)
测试编译器为MATLAB
作为入门计算机视觉领域来说,Matlab是款非常使用的初学工具,其中的边缘检测、图像分割、霍夫变换等经典技术依然活跃在计算机视觉很多领域。因此,学好数字图像处理是我们入门计算机领域一个非常好的途径,好了话不多说,来和笔者一起看一下今天的主题-边缘检测。
一.What is Digital Image Processing?(什么是数字图像处理)
首先说明主要的应用领域:
1.改善图示信息以便人们解释;
2.为储存、传输和表示而对图像数据进行处理,以便于机械自动理解
简单来说我们可理解为由原始图像,使用计算机处理为我们所能理解或所需图片或形式
二.数字图像处理基础知识与算法
接下来先简单介绍一下一些学习数字图像处理的基础知识与算法
经典边缘检测算子的简介
Roberts算子,又称罗伯茨算子,是一种最简单的算子,是一种利用局部差分算子寻找边缘的算子。他采用对角线方向相邻两象素之差近似梯度幅值检测边缘。检测垂直边缘的效果好于斜向边缘,定位精度高,对噪声敏感,无法抑制噪声的影响。
Prewitt算子是一种一阶微分算子的边缘检测,利用像素点上下、左右邻点的灰度差,在边缘处达到极值检测边缘,去掉部分伪边缘,对噪声具有平滑作用 。其原理是在图像空间利用两个方向模板与图像进行邻域卷积来完成的,这两个方向模板一个检测水平边缘,一个检测垂直边缘。
对数字图像f(x,y),Prewitt算子的定义如下:
G(i)={[f(i-1,j-1)+f(i-1,j)+f(i-1,j+1)]-[f(i+1,j-1)+f(i+1,j)+f(i+1,j+1)]}
G(j)={[f(i-1,j+1)+f(i,j+1)+f(i+1,j+1)]-[f(i-1,j-1)+f(i,j-1)+f(i+1,j-1)]}
则 P(i,j)=max[G(i),G(j)]或 P(i,j)=G(i)+G(j)
Sobel算法是像素图像边缘检测中最