【IACV】边缘检测技术传统的方法与理论
1.边缘检测的目的
边缘检测是图像分析中使用到的最常见的操作之一,而且相比其他任何主题来说,文献中提到的与边缘增强(edge enhancement)[1]与边缘检测(edge detection)[2]相关算法可能最多的。从广义来说,其原因在于边缘形成一个在图象分析与视觉系统重要的处理主体的轮廓。边缘是对象与背景之间的边界,还是表示重叠对象之间的边界。这需要根据现在实际情况来定位。
边缘检测是被称作图像分割的过程的一部分,而图像分割的目的是识别出图像中的区域。从技术上说,边缘检测是定位边缘像素的过程,而边缘增强是增加边缘和背景之间对比度以便能够更清楚地看测边缘的过程。此外边缘跟踪(edge tracing)是沿着边缘进行跟踪的过程,这个过程通常会把边缘像素采集到一个列表中。
2.传统的方法和理论
很自然,边缘有多种可能的定义,每一种定义都适用于某些特定的情况。其中一种最常用也是具有一般性的定义的理想阶梯型边缘(ideal step edge)。如图1所示:
图1 阶梯型边缘 (a)恰好在像素10的位置发生在灰阶变化。(b)灰阶发生了同样的变化,但是跨越了像素10周围的4个像素。这是一个斜坡边缘。(c)灰阶发生了同样的变化,但是跨越了像素10周围的10个像素。(d)跨越了10个像素的较小变化。
在这个一维的示例中,边缘只不过是在某个位置发生的灰阶变化。灰阶变化越大,边缘的检测也容易。但第一个难点是来自于数码化。图像的采样不可能使得整个边缘刚好落在像素边界上。第二个难点是来自于无处不在的噪声问题。
边缘的模型
图1(a)中阶梯型边缘是理想型边缘,因为很容易检测出来。
噪声
噪声的特征通常可以用带有特定平均值(mean)和标准偏差(stand deviation)的概率分布来表示。在图像分析中,我们特别关注的是以下两种的噪声:
- 信号无关的噪声(signal-independent noise)
- 信号有关的噪声(signal-dependent noise)
信号无关的噪声是一组随机的灰阶值,在统计意义上和图像数据无关,这些数据加入图像的像素中产生了带噪声的图像。
// Measure the Normally distributed noise in a small region.
// Assume that the mean is zero. #include "stdio.h"
#include "cv.h"
#include "highgui.h"
#include "IPVACV.h" // Biggest possible filter mask
#define MAX_MASK_SIZE 20 int main (int argc char* argv[ ]) {
IMAGE im;
int i,j,k = 0;
float x =0.0, y = 0.0, z;
double mean, sd; im =Iput_PBM(argv[1]); for(i = 0; i< im->info->nr; i++){
for(j = 0; j< im->info->nc; j++){
x +=(float)(im->data[i][j]);
y +=(float)(im->data[i][j])*(float)(im->data[i][j]);
k +=1;
}
}
// Comput estimate - mean noise is 0
sd =(double)(y- x*x/(float)k)/(float)(k-1);
mean = (double)(x/(float)k);
printf("Image mean is %10.5f Standard deviatio is %10.5f\n",mean, sqrt(sd));
}
参考文献
[1]. "Edge enhancement"From Wikipedia, the free encyclopediahttp://en.wikipedia.org/wiki/Edge_enhancement.
[2]. "Edge detection" From Wikipedia, the free encyclopedia http://en.wikipedia.org/wiki/Edge_detection.
======================================================= 转载请注明出处:http://blog.csdn.net/utimes/article/details/8797874=======================================================
【IACV】边缘检测技术传统的方法与理论的更多相关文章
- Python 图像处理 OpenCV (12): Roberts 算子、 Prewitt 算子、 Sobel 算子和 Laplacian 算子边缘检测技术
前文传送门: 「Python 图像处理 OpenCV (1):入门」 「Python 图像处理 OpenCV (2):像素处理与 Numpy 操作以及 Matplotlib 显示图像」 「Python ...
- Python 图像处理 OpenCV (13): Scharr 算子和 LOG 算子边缘检测技术
前文传送门: 「Python 图像处理 OpenCV (1):入门」 「Python 图像处理 OpenCV (2):像素处理与 Numpy 操作以及 Matplotlib 显示图像」 「Python ...
- atitit.为什么技术的选择方法java超过.net有前途
atitit.为什么技术的选择方法java超过.net有前途 #----有没有法律依据不同的铜需求... 通常有开发效率,需要在稳定性.. 笔者 老哇爪 Attilax 艾龙, EMAIL:1466 ...
- 通过写n本书的积累,我似乎找到了写好技术文章的方法(回复送我写的python股票电子书)
我写的书不算少,写的博文就更多了,但大多数书的销量也就一般,而我写的技术文章里,虽然也有点击过万的,但不少点击量也就只有三位数. 通过不断反思,也通过对比了一些畅销书和顶流文章,我似乎找到了一些原因, ...
- JAVA多线程提高一:传统线程技术&传统定时器Timer
前面我们已经对多线程的基础知识有了一定的了解,那么接下来我们将要对多线程进一步深入的学习:但在学习之前我们还是要对传统的技术进行一次回顾,本章我们回顾的则是:传统线程技术和传统的定时器实现. 一.传统 ...
- SQL Server ->> 高可用与灾难恢复(HADR)技术 -- AlwaysOn可用性组(理论篇)
因为篇幅原因,AlwaysOn可用性组被拆成了两部分:理论部分和实战部分.而实战部分又被拆成了准备工作和AlwaysOn可用性组搭建. 三篇文章各自的链接: SQL Server ->> ...
- Effective Objective-C 2.0 — 第13条:用“方法调配 技术” 调试 “黑盒方法”
自己理解是调配了方法 在运行期,可以向类中新增或替换选择子所对应的方法实现. 使用另一份实现来替换原有的方法实现,这道工序叫做“方法调配”,开发者常用此技术向原有实现中添加新功能. 一般来说,只有调试 ...
- PHP缓存技术的多种方法小结
这里所说的数据缓存是指数据库查询PHP缓存机制,每次访问页面的时候,都会先检测相应的缓存数据是否存在,如果不存在,就连接数据库,得到数据,并把查询结果序列化后保存到文件中,以后同样的查询结果就直接从缓 ...
- kaggle信用卡欺诈看异常检测算法——无监督的方法包括: 基于统计的技术,如BACON *离群检测 多变量异常值检测 基于聚类的技术;监督方法: 神经网络 SVM 逻辑回归
使用google翻译自:https://software.seek.intel.com/dealing-with-outliers 数据分析中的一项具有挑战性但非常重要的任务是处理异常值.我们通常将异 ...
随机推荐
- oracle中if/else
oracle中if/else功能的实现的3种写法 1.标准sql规范 一.单个IF 1. if a=... then ......... end if; 2. if a=... then .... ...
- zookeeper perl 版本需求
[root@wx03 ~]# perl -v This is perl 5, version 22, subversion 1 (v5.22.1) built for x86_64-linux Cop ...
- UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现
UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现 类与类图 1) 类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性.操作.关系的对象集合的总称. 2) 在系统中, ...
- coreldraw圆形裁剪
裁剪方法: http://zhidao.baidu.com/link?url=9-OuTkkr7igOHgKDOhJgU6iUYY5MeGEGdNXX8p6RGq79Im4va0UdMAmH4gSDz ...
- G-Sensor 校准标准
在桌面上水平平,自己的前表面. 此时Z轴应+值,和值至9.8大约,x.y轴应0值大约.它是平行于主体x轴,固定的左,提起右侧时,,x轴数值它应0开始增加.直到垂直时,+9.8大约. 为y轴.下面固定. ...
- Jetty:配置概览-须要配置什么
上一节讲述了怎么配置Jetty,这节将告诉你使用Jetty你须要配置些什么. 配置Server Server实例是Jetty服务端的中心协调对象,它为全部其它Jetty服务端组件提供服务和生命周期管理 ...
- 嵌入式:使用dd命令制作烧写文件
1. 使用dd命令制作烧写文件 环境: bootargs=mem=64M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 mtd ...
- HDOJ 1325 并查集
跟小希的迷宫基本一样,只是此题是有向图,要注意:1无环 2 只有一个入度为0的结点(根结点), 不存在入度大于1的结点.输入结束条件是两个负数,而不是-1,不然会TLE. #include<st ...
- 14 - XML、JSON、PLIST对比和APP生命周期
XML中间的 数据表达/传输数据的语言 优点:特别强大 强大到很多平台都有基于XML的独立语言,如MXML.HTML 缺点:传输小型数据时,特别啰嗦 size / speed = time JSON ...
- [ASP.NET]利用itextsharp将GridView汇出PDF档
原文 [ASP.NET]利用itextsharp将GridView汇出PDF档 最近在讨论区看到有人说itextsharp可以把网页变成PDF 小弟就去抓一下itextsharp来玩玩,先教大家最实用 ...