就是通过一些临近像素相关算法突出灰度变化比较大的部分。变化平缓的取值低,变化越剧烈取值越高。比如有卷积算法,具体计算方法,有拉普拉斯算子、高斯算子等的应用。
2. 基于matlab边缘提取的几种方法的比较
I=imread('lena.bmp');% 提取图像
BW1=edge(I,'sobel'); %用SOBEL算子进行边缘检测
BW2=edge(I,'roberts');%用Roberts算子进行边缘检测
BW3=edge(I,'prewitt'); %用prewitt算子进行边缘检测
BW4=edge(I,'log'); %用log算子进行边缘检测
BW5=edge(I,'canny'); %用canny算子进行边缘检测
h=fspecial('gaussian’,5);
BW6=edge(I,’canny’);
subplot(2,3,1), imshow(BW1);
title(‘sobel edge check’);
subplot(2,3,2), imshow(BW2);
title(‘sobel edge check’);
subplot(2,3,3), imshow(BW3);
title(‘prewitt edge check’);
subplot(2,3,4), imshow(BW4);
title(‘log edge check’);
subplot(2,3,5), imshow(BW5);
title(‘canny edge check’);
subplot(2,3,6), imshow(BW6);
title(‘gasussian&canny edge check’);%此为用高斯滤波后Canny算子边缘检测结果
(注意:代码中有一些标点是中文模式,若输入代码后标点显示红色,则为中文标点,改回来就行了)
3. 英文文献翻译(边缘检测方面)
The
Canny
edge
detection
algorithm
is
known
to
many
as
the
optimal
edge
detector.Canny边缘检测算法对很多人来说是众所周知的最佳边缘检测工具。
Canny's
intentions
were
to
enhance
the
many
edge
detectors
already
out
at
the
time
he
started
his
work.Canny的意图是提高很多在他开始自己的研究时就已过时的边缘检测工具。He
was
very
successful
in
achieving
his
goal
and
his
ideas
and
methods
can
be
found
in
his
paper,
"A
Computational
Approach
to
Edge
Detection".
他在实现自己的目标时非常成功,他的概念和方法可以在本文中看到。In
his
paper,
he
followed
a
list
of
criteria
to
improve
current
methods
of
edge
detection.
在本文中,他遵循了一系列的准则来改进边缘检测的现有方法。The
first
and
most
obvious
is
low
error
rate.首先而最明显的是低的差错率(误码率)。
It
is
important
that
edges
occuring
in
images
should
not
be
missed
and
that
there
be
NO
responses
to
non-edges.
以下两点很重要,即发生在图像中的边缘不应被错过,以及对非边缘“没有”响应。The
second
criterion
is
that
the
edge
points
be
well
localized.这第二条准则是,边缘点被很好定位。
In
other
words,
the
distance
between
the
edge
pixels
as
found
by
the
detector
and
the
actual
edge
is
to
be
at
a
minimum.换句话说,由检测器发现的边缘像素和实际边缘之间的距离要处于最小值。
A
third
criterion
is
to
have
only
one
response
to
a
single
edge.第三个准则是对单一的边缘只有一个响应。
This
was
implemented
because
the
first
2
were
not
substantial
enough
to
completely
eliminate
the
possibility
of
multiple
responses
to
an
edge.这一条得到了实施,因为前两条对完全消除一个边缘可能出现多次响应方面还不够充分。
4. 图像分割和图像边缘检测 到底是什么区别呢
这个还是比较好区分的。首先说边缘检测,边缘检测是通过图像的梯度变化将图像中梯度变化明显的地方检测出来,针对的是边缘信息。图像分割是将目标分割出来,针对的是目标对象,边缘检测是空间域图像分割的一种方法,属于包含关系
5. 边缘检测算子有哪些它们各有什么优缺点
边缘检测算子一阶的有Roberts Cross算子,Prewitt算子,Sobel算子,Canny算子, Krisch算子,罗盘算子;而二阶的还有Marr-Hildreth,在梯度方向的二阶导数过零点。
Roberts算子
一种利用局部差分算子寻找边缘的算子,分别为4领域的坐标,且是具有整数像素坐标的输人图像;其中的平方根运算使得该处理类似于人类视觉系统中发生的过程。
Sobel算子
一种一阶微分算子,它利用像素邻近区域的梯度值来计算1个像素的梯度,然后根据一定的绝对值来取舍。
Prewitt算子
Prewitt算子是3*3算子模板。2个卷积核dx ,不要形成了Prewitt算子。与Sobel算子的方法一样,图像中的每个点都用这2个核进行卷积,取最大值作为输出值。
各个算子的优缺点:
Robert算子定位比较精确,但由于不包括平滑,所以对于噪声比较敏感。
Prewitt算子和Sobel算子都是一阶的微分算子,而前者是平均滤波,后者是加权平均滤波且检测的图像边缘可能大于2个像素。这两者对灰度渐变低噪声的图像有较好的检测效果,但是对于混合多复杂噪声的图像,处理效果就不理想了。
LOG滤波器方法通过检测二阶导数过零点来判断边缘点。LOG滤波器中的a正比于低通滤波器的宽度,a越大,平滑作用越显着,去除噪声越好,但图像的细节也损失越大,边缘精度也就越低。所以在边缘定位精度和消除噪声级间存在着矛盾,应该根据具体问题对噪声水平和边缘点定位精度要求适当选取。
6. 边缘检测的边缘检测算子
一阶::Roberts Cross算子,Prewitt算子,Sobel算子, Kirsch算子,罗盘算子;
二阶: Marr-Hildreth,在梯度方向的二阶导数过零点,Canny算子,Laplacian算子。
Canny算子(或者这个算子的变体)是最常用的边缘检测方法。 在 Canny 创造性的工作中,他研究了设计一个用于边缘检测最优预平滑滤波器中的问题,后来他说明这个滤波器能够很好地被一阶高斯导数核优化。另外 Canny 引入了非最大抑制概念,它是说边缘定义为在梯度方向具有最大梯度值的点。
在一个离散矩阵中,非最大抑制阶梯能够通过一种方法来实现,首先预测一阶导数方向、然后把它近似到45度的倍数、最后在预测的梯度方向比较梯度幅度。
一个获得亚点精度边缘的改进实现是通过检测梯度方向上二阶方向梯度的过零点来实现的:
它在梯度方向的三阶方向梯度满足符号条件
其中 Lx, Ly ... Lyyy 表示从使用高斯核平滑原始图像得到的尺度空间表示 L 计算出的偏微分。
按照这种方法,能够自动得到亚点精度的连续曲线边缘。滞后门槛也可以用在这些差分边缘片断。
罗盘算子是斯坦福大学的Ruzon在1999年提出的一个新的算子,据实验以及报道,性能超过Canny算子。
7. canny边缘检测算法 滤波用什么方法好
Canny 的目标是找到一个最优的边缘检测算法,最优边缘检测的含义是:
(1)最优检测:算法能够尽可能多地标识出图像中的实际边缘,漏检真实边缘的概率和误检非边缘的概率都尽可能小;
(2)最优定位准则:检测到的边缘点的位置距离实际边缘点的位置最近,或者是由于噪声影响引起检测出的边缘偏离物体的真实边缘的程度最小;
(3)检测点与边缘点一一对应:算子检测的边缘点与实际边缘点应该是一一对应。
为了满足这些要求 Canny 使用了变分法,这是一种寻找满足特定功能的函数的方法。最优检测使用四个指数函数项表示,但是它非常近似于高斯函数的一阶导数。
8. 图像边缘检测有哪几种方法
sobel算子应该是算比较简单的,canny也算是比较常用的 ,pca我见过一般都是人脸的检测,别的地方用的,还真不多吧,可能我水平还是有限,我刚搜了一下就有一篇文章是是关于PCA用于图像边缘的检测,日本琉球大学的,已经发给你了。PCA的主要作用就是对多角度的测量数据进行观察,去掉无用的数据,只保留主元,减小计算量,最合适的地方就是人脸识别,人脸肯定是有扭动的角度的。csdn上不少pca代码。
边缘检测还是常规点好,那些sobel,roberts,canny等等多么强大好用,为啥必须用pca啊?有篇文章 关于pca来做图像特征的,可能有包含边缘的部分,自己找着下载看吧,在SPRINGER上 .
9. 边缘检测的函数是什么
右键方法名 --转到定义如果没有这个方法,那么就是 Gmap.Manager中尚未定义GetRouteBetweenPoints方法。如果这个Gmap.Manager类有代码可循,那么补充这个方法代码。如果Gmap.Manager这个类是第三方的一个DLL引用,无法编辑。那么这个调用就是错误的。
10. 图像边缘检测后怎么可以对图像进一步处理使边缘成联通的曲线
其实, 最重要的不是进一步怎么样, 而是需要首先做一下预处理, 不要直接就边缘检测, 直接边缘检测效果往往不好, 如果直接边缘检测, 很多原始信息在噪声的影响下就丢失了, 丢失掉的东西, 你想补上去是不容易的. 所以我建议你, 首先, 做一下图像增强, 然后再做边缘检测, 边缘检测的时候 试验几种不同的算子, 比如sobel, canny等等, 选一种效果好的, 不同的算子对不同的图像检测的效果也不同. 然后再处理非连通区域, 处理的时候可以用形态学方法, 比如膨胀,或者 霍夫变换也可以.
另外, 如果你的目的就是统计细胞的个数, 不一定非要用边缘检测, 可以试试直接应用形态学方法