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】边缘检测技术传统的方法与理论的更多相关文章

  1. Python 图像处理 OpenCV (12): Roberts 算子、 Prewitt 算子、 Sobel 算子和 Laplacian 算子边缘检测技术

    前文传送门: 「Python 图像处理 OpenCV (1):入门」 「Python 图像处理 OpenCV (2):像素处理与 Numpy 操作以及 Matplotlib 显示图像」 「Python ...

  2. Python 图像处理 OpenCV (13): Scharr 算子和 LOG 算子边缘检测技术

    前文传送门: 「Python 图像处理 OpenCV (1):入门」 「Python 图像处理 OpenCV (2):像素处理与 Numpy 操作以及 Matplotlib 显示图像」 「Python ...

  3. atitit.为什么技术的选择方法java超过.net有前途

    atitit.为什么技术的选择方法java超过.net有前途 #----有没有法律依据不同的铜需求... 通常有开发效率,需要在稳定性.. 笔者 老哇爪 Attilax 艾龙,  EMAIL:1466 ...

  4. 通过写n本书的积累,我似乎找到了写好技术文章的方法(回复送我写的python股票电子书)

    我写的书不算少,写的博文就更多了,但大多数书的销量也就一般,而我写的技术文章里,虽然也有点击过万的,但不少点击量也就只有三位数. 通过不断反思,也通过对比了一些畅销书和顶流文章,我似乎找到了一些原因, ...

  5. JAVA多线程提高一:传统线程技术&传统定时器Timer

    前面我们已经对多线程的基础知识有了一定的了解,那么接下来我们将要对多线程进一步深入的学习:但在学习之前我们还是要对传统的技术进行一次回顾,本章我们回顾的则是:传统线程技术和传统的定时器实现. 一.传统 ...

  6. SQL Server ->> 高可用与灾难恢复(HADR)技术 -- AlwaysOn可用性组(理论篇)

    因为篇幅原因,AlwaysOn可用性组被拆成了两部分:理论部分和实战部分.而实战部分又被拆成了准备工作和AlwaysOn可用性组搭建. 三篇文章各自的链接: SQL Server ->> ...

  7. Effective Objective-C 2.0 — 第13条:用“方法调配 技术” 调试 “黑盒方法”

    自己理解是调配了方法 在运行期,可以向类中新增或替换选择子所对应的方法实现. 使用另一份实现来替换原有的方法实现,这道工序叫做“方法调配”,开发者常用此技术向原有实现中添加新功能. 一般来说,只有调试 ...

  8. PHP缓存技术的多种方法小结

    这里所说的数据缓存是指数据库查询PHP缓存机制,每次访问页面的时候,都会先检测相应的缓存数据是否存在,如果不存在,就连接数据库,得到数据,并把查询结果序列化后保存到文件中,以后同样的查询结果就直接从缓 ...

  9. kaggle信用卡欺诈看异常检测算法——无监督的方法包括: 基于统计的技术,如BACON *离群检测 多变量异常值检测 基于聚类的技术;监督方法: 神经网络 SVM 逻辑回归

    使用google翻译自:https://software.seek.intel.com/dealing-with-outliers 数据分析中的一项具有挑战性但非常重要的任务是处理异常值.我们通常将异 ...

随机推荐

  1. [产值分析]生产部KPI考核之产值分析

    接到新任务:设计统计电子和磁电公司生产部产值分析报表. 眼下状况: 1.电子公司:取最新单位价格*入库数量 2.磁电公司:取最低价格*入库数量(实际取价的时候又没有取到最低价) 假设计算出来的结果和財 ...

  2. 【转】Lua脚本语法说明简介

    Lua 的语法比较简单,学习起来也比较省力,但功能却并不弱. 所以,我只简单的归纳一下Lua的一些语法规则,使用起来方便好查就可以了.估计看完了,就懂得怎么写Lua程序了. 在Lua中,一切都是变量, ...

  3. mac忘记登陆密码解决

    重新启动苹果电脑,开机时按住“command”键+“S”键,(普通键盘按住win+s)会进入单用户模式, 出现像DOS一样的提示符 #root>依次输入如下三个命令:(注意空格 注意大小写) f ...

  4. HDU4707:Pet(DFS)

    Problem Description One day, Lin Ji wake up in the morning and found that his pethamster escaped. He ...

  5. [置顶] 小白学习KM算法详细总结--附上模板题hdu2255

    KM算法是基于匈牙利算法求最大或最小权值的完备匹配 关于KM不知道看了多久,每次都不能完全理解,今天花了很久的时间做个总结,归纳以及结合别人的总结给出自己的理解,希望自己以后来看能一目了然,也希望对刚 ...

  6. 疯狂JAVA讲义第三章之数组篇

    package test;   /** * Desription: * @author orangebook *<br/>网站:<a href="http://www.cr ...

  7. Jquery progressbar通过Ajax请求获取后台进度演示

    项目源代码下载:http://download.csdn.net/detail/nuptboyzhb/6262253 1.简介 本文主要演示Jquery progressbar的进度条功能.js通过a ...

  8. yii phpexcel自己主动生成文件保存到server上

    近期再整一个报表任务,每天必须把表导出来按excel格式发送邮件给管理员,利用phpexcel把表保存到server上.然后再通过phpmailer发送就ok. ob_end_clean();     ...

  9. 基于visual Studio2013解决C语言竞赛题之1047百马问题

      题目 解决代码及点评 /* 47.马百瓦问题.有100匹马,100块瓦,大马驮3块, 小马驮2块,两个马驹驮1块.问大马.小马.马驹各多少? 要求:① 不许用for循环; ② 循环次数 ...

  10. 基于visual Studio2013解决C语言竞赛题之1042字符串比较

          题目 解决代码及点评 /********************************************************************** ...