【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 数据分析中的一项具有挑战性但非常重要的任务是处理异常值.我们通常将异 ...
随机推荐
- Week11(11月21日)
Part I:提问 =========================== 1.如何编辑更新一条记录? Part II:案例学习 =========================== MusicSt ...
- 基于Sql Server 2008的分布式数据库的实践(三)
原文 基于Sql Server 2008的分布式数据库的实践(三) 配置PHP 1.打开PHP配置文件,找到extension=php_mssql.dll,将前面的注释符号去掉 2.找到mssql.s ...
- VC++界面编程之--使用分层窗口实现界面皮肤
使用分层界面来实现界面皮肤的好处是:可以保证图片边缘处理不失真,且能用于异形窗口上,如一些不规则的窗口,你很难用SetWindowRgn来达到理想效果. 在很多情况下,界面的漂亮与否,取决于PS的制作 ...
- 编译cm12.1
背景 Ubuntu 14.04 64位,硬盘空间大于100G 更新系统至最新版本号,在终端下输入 sudo apt-get update sudo apt-get upgrade 安装编译必需软件包 ...
- IOS 获取网络图像尺寸 更改 图像色彩值 什么一套方法灰色
直接在代码 头文件 // 图片处理 0 半灰色 1 灰度 2 深棕色 3 反色 +(UIImage*)imageWithImage:(UIImage*)image grayLevelType:(UII ...
- eclipse No Default Proposals 无提示
链接地址:http://blog.csdn.net/rogerjava/article/details/5689785 今天特抑郁,早上开机后发现eclipse的代码提示功能不好使了,Alt+/ 这么 ...
- 菜鸟学习SSH(二)——Struts国际化
国际化(internationalization,i18n)和本地化(localization,l10n)指让产品(出版物,软件,硬件等)能够适应非本地环境,特别是其他的语言和文化.程序在不修改内部代 ...
- 【转】如何在CentOS/RHEL中安装基于Web的监控系统 linux-das
Linux-dash是一款为Linux设计的基于Web的轻量级监控面板.这个程序会实时显示各种不同的系统属性,比如CPU负载.RAM使用率.磁盘使用率.网速.网络连接.RX/TX带宽.登录用户.运行的 ...
- js中exec、test、match、search、replace、split、indesOf()用法
exec:对string进行正则处理,并返回匹配结果.array[0]为原字符串,array[i]为匹配在整个被搜索字符串中的位置. test:测试string是否包含有匹配结果,包含返回true,不 ...
- 操作VCF卡片信息的第三方jar包:ez-vcard
ez-vcard https://github.com/mangstadt/ez-vcard 目前最新的版本已经更新到0.9.8 起初使用该jar包的时候,是0.9.3,当时遇到一个很尴尬的问题, 就 ...