论文部分内容阅读
[摘要]如何提取样本图像是当前仿真系统实现中的主要难点而提取样本图像在数字图像处理中属于边缘检测技术。目前国内外边缘检测的方法有很多种主要研究基于Canny边缘检测的样本提取算法。
[关键词]图像处理 仿真系统 边缘检测
中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)0510021-01
仿真系统实现过程中对样本图像进行处理的目的是提取图像中的轮廓边缘这就需要使用边缘检测算法。目前国内外边缘检测的方法主要有以下几种:
一、检测梯度最大值检测方法
由于边缘发生在图像灰度值变化比较大的地方对应连续情形就是函数梯度较大的地方所以研究比较好的求导算子就成为一种思路。Roberts算子、Prewitt算子和Sobel算子等就是比较简单而常用的例子。
二、检测二阶导数的零交叉点
这是因为边缘处的梯度取得最大值(正的或者负的)也就是灰度图像的拐点是边缘。从分析学上我们知道拐点处
函数的二阶导数是0。
三、统计型方法
比如说利用假设检验来检测边缘D.H.Marimont在利用对二阶零交叉点的统计分析得到了图像中各个像素是边缘的概率并进而得到边缘检测的方案。
四、小波多尺度边缘检测
目前还没有评价各种方法好坏的具体标准需要依赖于实际的应用领域。Canny总结了以往理论和实践的成果提出边缘检测Canny三准则:好的检测结果好的定位还有对单一边缘低重复响应并给出了他们的数学表达式这是一个连续准则。利用这些准则的数学表达式可以求出特定边缘的最优线性滤波器也可以对不同的算子的性能进行比较。在Canny三准则的基础上人们进行了深入研究得到了很多结果。但是由于Canny准则是连续准则得到的最优滤波器也是一个连续函数这就需要抽样得到离散模板。可是理论和实践告诉我们在连续情形下好的滤波器实际上并不好。
Didier通过长期的研究最终提出了边缘检测质量的离散准则他发现在这种离散准则下第三个准则的作用可以被阈值操作代替并在此基础上得到了这个离散Canny准则下的最优线性滤波器。Canny算法假设边缘信号的响应是比较少的而且是比较大的值而噪声的响应是很多的但是值相对较小那么阈值就可以通过滤波后的图像的统计累积直方图得到。为了使阈值更准确Canny提出了一种双阈值方法。利用统计累积直方图得到一个高阈值Th然后再取一个低阈值(Tl=0.4Th)。如果图像信号的响应大于高阈值那么该位置一定是边缘;如果低于低阈值那么该位置一定不是边缘;如果在低阈值和高阈值之间我们就看它的8个临近像素有没有大于高阈值的边缘。Canny算法的具体步骤如下:
(一)平滑算子的计算
尺度为W的平滑算子可以用同尺度的求导算子迭代产生。假设d是尺度为W的求导算子W=12...20。s为同尺度下的平滑算子。di为d的第i个数si为s的第i个数i=-W-(W-1)...-101...W则有:
(二)双阈值的计算
阈值的选取有很多种方法Canny算法中一般是用灰度直方图得到的:求出滤波后的图像的灰度直方图;然后利用A的结果求出累积直方图;求出累积直方图0.8处的值作为高阈值:Th;计算低阈值:Tl=0.4*Th。
(三)进行边缘检测
A.尺度为W的平滑算子(s)按行对原图像做卷积运算然后用相应的最优求导算子(d)对平滑后的算子按列做卷积运算得到Gy;再用s按列对原图像做卷积运算然后对d平滑后的算子按行做卷积运算得到Gx。
B.算出以下两个值:。
C.遍历一次灰度矩阵把梯度方向θ分为四种:0(水平方向): 0-22.5°以及157.5°-180°;45(45°方向): 22.5°-67.5°;90 竖直方向): 67.5°-112.5°;135(135°方向): 112.5°-157.5°。
D.求G的累积直方图得到ThTl=0.4*Th。
E.非最大抑制:遍历G若某个像素的灰度值与其梯度方向上前后两个像素的灰度值相比不是最大的那么这个像素值置为0。
F.双阈值操作:遍历G大于Th的设为边缘;如果小于Tl的设为非边缘;小于Th但是大于Tl的时候看他周围像素处有没有大于Th的边缘:如果有这个点就是边缘否则就不是边缘。
因为需要提取的样本图像中像素的R、G、B值比较接近所以也可以使用统计学上的方法求出样本图像中R、G、B三个值的关系然后根据这个关系再进行提取。用截图软件截取一段60*60的样本图像则一共有3600个像素把每行紧邻的三个像素的RGB值组成一个三元一次方程组:
3600个点一共可以组成1200个方程组因此就可以计算出1200组(X1X2X3)。我们使用高斯(Gauss)消去法解方程。求出1200组(X1X2X3)后对X1、X2、X3分别求出平均值然后把平均值代入方程:
(公式2)
计算出3600个F值然后进行统计如果90%的F的绝对值都小于0.1则根据统计学上的原理可以认为样本图像中的像素R、G、B值符合公式2的关系这些点就是我们所需要的样本。如果小于90%则分别对X1、X2、X3三个平均值进行缩小和放大直到计算出来的90%的F的绝对值都小于0.1为止。在提取样本图像时可以使用公式2进行判断如果某个像素的R、G、B值计算出来的F的绝对值小于0.1则这个像素就是所需的样本图像中的一个点。
Canny边缘检测算法的改进版本较多本论文研究了其中的一种双阈值方法没有对其它方法进行研究。在下一步的研究中我们将研究其它版本的改进算法以与双阈值方法进行比较。基于统计的自学习样本提取算法有时会丢失边缘的一部分像素点应考虑是否能与Canny边缘检测算法结合以求得更好的样本提取效果。
参考文献:
[1]于烨、陆建华、郑君里一种新的彩色图像边缘检测算法[J].清华大学学报.200545(10):1339-1343.
[2]陈宏希基于边缘保持平滑滤波的Canny算子边缘检测[J]. 兰州交通大学学报.2006(1):86-90.
[3]翟红芳中值滤波和边缘检测技术在复杂背景图像分割中的应用[J].现代计算机.2006(9):94-96.
[4]周俊霞、吴国平、高芳芳基于中值滤波和数学形态学结合的边缘检测[J].现代计算机.2005(2): 73-75.
注:“本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。”
[关键词]图像处理 仿真系统 边缘检测
中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)0510021-01
仿真系统实现过程中对样本图像进行处理的目的是提取图像中的轮廓边缘这就需要使用边缘检测算法。目前国内外边缘检测的方法主要有以下几种:
一、检测梯度最大值检测方法
由于边缘发生在图像灰度值变化比较大的地方对应连续情形就是函数梯度较大的地方所以研究比较好的求导算子就成为一种思路。Roberts算子、Prewitt算子和Sobel算子等就是比较简单而常用的例子。
二、检测二阶导数的零交叉点
这是因为边缘处的梯度取得最大值(正的或者负的)也就是灰度图像的拐点是边缘。从分析学上我们知道拐点处
函数的二阶导数是0。
三、统计型方法
比如说利用假设检验来检测边缘D.H.Marimont在利用对二阶零交叉点的统计分析得到了图像中各个像素是边缘的概率并进而得到边缘检测的方案。
四、小波多尺度边缘检测
目前还没有评价各种方法好坏的具体标准需要依赖于实际的应用领域。Canny总结了以往理论和实践的成果提出边缘检测Canny三准则:好的检测结果好的定位还有对单一边缘低重复响应并给出了他们的数学表达式这是一个连续准则。利用这些准则的数学表达式可以求出特定边缘的最优线性滤波器也可以对不同的算子的性能进行比较。在Canny三准则的基础上人们进行了深入研究得到了很多结果。但是由于Canny准则是连续准则得到的最优滤波器也是一个连续函数这就需要抽样得到离散模板。可是理论和实践告诉我们在连续情形下好的滤波器实际上并不好。
Didier通过长期的研究最终提出了边缘检测质量的离散准则他发现在这种离散准则下第三个准则的作用可以被阈值操作代替并在此基础上得到了这个离散Canny准则下的最优线性滤波器。Canny算法假设边缘信号的响应是比较少的而且是比较大的值而噪声的响应是很多的但是值相对较小那么阈值就可以通过滤波后的图像的统计累积直方图得到。为了使阈值更准确Canny提出了一种双阈值方法。利用统计累积直方图得到一个高阈值Th然后再取一个低阈值(Tl=0.4Th)。如果图像信号的响应大于高阈值那么该位置一定是边缘;如果低于低阈值那么该位置一定不是边缘;如果在低阈值和高阈值之间我们就看它的8个临近像素有没有大于高阈值的边缘。Canny算法的具体步骤如下:
(一)平滑算子的计算
尺度为W的平滑算子可以用同尺度的求导算子迭代产生。假设d是尺度为W的求导算子W=12...20。s为同尺度下的平滑算子。di为d的第i个数si为s的第i个数i=-W-(W-1)...-101...W则有:
(二)双阈值的计算
阈值的选取有很多种方法Canny算法中一般是用灰度直方图得到的:求出滤波后的图像的灰度直方图;然后利用A的结果求出累积直方图;求出累积直方图0.8处的值作为高阈值:Th;计算低阈值:Tl=0.4*Th。
(三)进行边缘检测
A.尺度为W的平滑算子(s)按行对原图像做卷积运算然后用相应的最优求导算子(d)对平滑后的算子按列做卷积运算得到Gy;再用s按列对原图像做卷积运算然后对d平滑后的算子按行做卷积运算得到Gx。
B.算出以下两个值:。
C.遍历一次灰度矩阵把梯度方向θ分为四种:0(水平方向): 0-22.5°以及157.5°-180°;45(45°方向): 22.5°-67.5°;90 竖直方向): 67.5°-112.5°;135(135°方向): 112.5°-157.5°。
D.求G的累积直方图得到ThTl=0.4*Th。
E.非最大抑制:遍历G若某个像素的灰度值与其梯度方向上前后两个像素的灰度值相比不是最大的那么这个像素值置为0。
F.双阈值操作:遍历G大于Th的设为边缘;如果小于Tl的设为非边缘;小于Th但是大于Tl的时候看他周围像素处有没有大于Th的边缘:如果有这个点就是边缘否则就不是边缘。
因为需要提取的样本图像中像素的R、G、B值比较接近所以也可以使用统计学上的方法求出样本图像中R、G、B三个值的关系然后根据这个关系再进行提取。用截图软件截取一段60*60的样本图像则一共有3600个像素把每行紧邻的三个像素的RGB值组成一个三元一次方程组:
3600个点一共可以组成1200个方程组因此就可以计算出1200组(X1X2X3)。我们使用高斯(Gauss)消去法解方程。求出1200组(X1X2X3)后对X1、X2、X3分别求出平均值然后把平均值代入方程:
(公式2)
计算出3600个F值然后进行统计如果90%的F的绝对值都小于0.1则根据统计学上的原理可以认为样本图像中的像素R、G、B值符合公式2的关系这些点就是我们所需要的样本。如果小于90%则分别对X1、X2、X3三个平均值进行缩小和放大直到计算出来的90%的F的绝对值都小于0.1为止。在提取样本图像时可以使用公式2进行判断如果某个像素的R、G、B值计算出来的F的绝对值小于0.1则这个像素就是所需的样本图像中的一个点。
Canny边缘检测算法的改进版本较多本论文研究了其中的一种双阈值方法没有对其它方法进行研究。在下一步的研究中我们将研究其它版本的改进算法以与双阈值方法进行比较。基于统计的自学习样本提取算法有时会丢失边缘的一部分像素点应考虑是否能与Canny边缘检测算法结合以求得更好的样本提取效果。
参考文献:
[1]于烨、陆建华、郑君里一种新的彩色图像边缘检测算法[J].清华大学学报.200545(10):1339-1343.
[2]陈宏希基于边缘保持平滑滤波的Canny算子边缘检测[J]. 兰州交通大学学报.2006(1):86-90.
[3]翟红芳中值滤波和边缘检测技术在复杂背景图像分割中的应用[J].现代计算机.2006(9):94-96.
[4]周俊霞、吴国平、高芳芳基于中值滤波和数学形态学结合的边缘检测[J].现代计算机.2005(2): 73-75.
注:“本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。”