边缘处理范文
边缘处理范文(精选7篇)
边缘处理 第1篇
关键词:Roberts算子,灰度,边缘检测
图像的边缘是图像的最基本特征。所谓边缘, 是指其周围象素灰度有阶跃变化或屋顶变化的那些象素的集合。物体的边缘是由灰度不连续性所反映的。经典的边缘提取方法是考察图像的每一个象素在某个领域内的灰度变化, 利用边缘邻近一阶或二阶方向导数变化规律, 用简单的方法检测出边缘。这类方法称为边缘检测局部算子法。
边缘检测算子检查每个象素的领域并对灰度变化率进行量化, 也包含方向的确定。这里我使用的是Roberts边缘检测算子法。
Roberts边缘检测算子是一种利用局部差分算子寻找边缘的算子。它在实际应用中可用如下公式表示:
其中f (x, y) 是输入图像, g (x;y) 是输出图像。
下面将用程序实现对已有位图用Roberts算子提取边缘:
下面给出的是经过Roberts算子边缘化之后的效果图。可以看到, 上述程序对该汽车位图已经实行了边缘化的处理, 将汽车的边缘比较清晰地提取了出来。
参考文献
[1]David A.Forsyth.计算机视觉.电子工业出版社, 2003.
[2]冈萨雷斯.数字图像处理.第二版.电子工业出版社, 2003.
[3]崔屹.数字图像处理技术与应用.电子工业出版社, 1997.
[4]Steve Rimmer, Windows.图像处理实用技术和范例.学苑出版社, 1994.
[5]何斌, 马天予.Visual C++数字图像处理.人民邮电出版社出版.
[6]Donald Hearn.计算机图形学 (第二版) .蔡士杰译, 电子工业出版社, 2002.
[7]朱志刚.数字图像处理.电子工业出版社, 2001.
医学图像的计算机处理——边缘检测 第2篇
图像最基本的特征是边缘, 即图像周围灰度变化比较大的像素的集合, 是进行图像分割所依赖的重要特征, 也是形状分析的重要基础。特别是在医学图像中, 由于各种噪声以及人体各器官组织的密度接近等因素影响, 图像的边缘往往不清晰, 而医学图像的边缘清晰与否在医学诊断上是尤为重要的, 边缘信息的有效提取可以确定病灶的大小位置等重要信息。因此对医学图像的边缘提取, 具有很重要的实际意义。
边缘在图像中都表现为强度的非连续性, 故而找出所有这些非连续的过程就可视为是边缘提取, 因此, 边缘提取技术必须既能检测到图像强度的非连续性, 又能确定它们的精确位置。
图像的边缘具有方向和幅度两个特征。通常, 沿边缘走向的像素变化平缓, 而垂直于边缘走向的像素变化剧烈, 由此可把边缘粗略分为两种:一种是阶跃性边缘, 即相邻的两个像素不在同一亮度区域内的边缘;另一种是屋顶状边缘, 它是指从左到右灰度值单调递增然后经过某点后单调递减, 边缘就存在于灰度值从递增到递减的转折点处, 它还可以分为屋顶型和凸缘型两种, 如图1所示。
2 医学图像边缘提取的几种算法
2.1 梯度算子
对于图像函数f (x, y) , 其x方向和y方向的一阶方向导数和二阶方向导数分别为:
在数字图像中, 上述的微分运算都用差分运算来代替, 成为沿各方向的差分:
由此可得到数字图像f (x, y) 的每个像素的梯度模值和幅角:
由于梯度值都和相邻像素之间的灰度差分成比例, 我们可以利用它来增强图像中的边界信息。因为这些边界点的灰度变化比较大, 因而其梯度值也较大, 而那些灰度变化平缓的区域, 梯度值相应较小, 对于灰度值相同的区域, 梯度值将为零。如果选取适当的门限 TH 对图像进行阈值化, 那么, 满足Mf (i, j) ≤TH 的点为物体和背景内部的点, 而满足Mf (i, j) >TH的点, 大多为阶跃状边缘点。
2.2 拉普拉斯算子
二阶微分算子称为拉普拉斯算子, 它是一个与边缘点方向无关的边缘点提取算子, 即对二维函数进行运算的二阶导数标量算子。在数字图像中的形式为:
很明显, 一个像素的拉普拉斯算子是它与上下左右 4 个像素之差的总合。对于孤立点或那些局部灰度值“最大”或“最小”的地方, 拉普拉斯值可得到最大的幅值, 而对于灰度为线性变化的像素处∇2x为 0, 在边缘地带由于像素突变可得到较大的值。它通常可以以数字化方式用下面两个卷积核之一来实现:
拉普拉斯算子不仅对于边缘, 而且对于边角线条的端点处也有较大的提取能力, 但是对于孤立点得到的幅值最大, 这样在有噪声的图像中, 噪声点也被作为边缘点提取出来。因此, 拉普拉斯算子对噪声比较敏感, 在处理结果中会出现零散的边缘像素点, 但对边缘定位还比较准确。
2.3 Sobel 算子
Sobel 算子是一阶微分算子, 它利用像素邻近区域的梯度值来计算 1 个像素的梯度, 然后根据一定的阈值来取舍, 其表达式为:s= (dx2+dy2) 1/2。对于数字图像 f (x, y) , 该式可简化为:G (i, j) =|Δxf (i, j) |+|Δyf (i, j) |。Sobel 算子是加权平均算子, 对于某个像素点, 考察其上、下、左、右邻点灰度的加权差, 与之接近的邻点的权大。Sobel 边缘算子是3×3算子模板, 由下面两个卷积核形成, 一个核对通常的垂直边缘响应最大而另一个对水平边缘响应最大, 两个卷积的最大值作为该点的输出值。其运算结果就是一幅边缘幅度图像。
由于 Sobel 算子中, 邻域的像素对当前像素产生的影响不是等价的, 所以距离不同的像素具有不同的权值, 对算子结果产生的影响也不同, 一般来说, 距离越大, 产生的影响越小。因此, Sobel 算子对灰度渐变和噪声较多的图像处理效果较好, 但不适用于边缘定位要求很高的应用。
2.4 Prewitt 算子
Prewitt 算子类似于 Sobel 算子, 是平均滤波, 其表达式为:
其两个卷积核如下:
2.5 Roberts 算子
Roberts 算子是一种利用局部差分算子寻找边缘的算子, 其表达式如下:
其中f (x, y) 是输入图像, g (x, y) 是输出值。Roberts 算子是2×2算子模板, 其卷
积核为:
从卷积核的形式可以看出, Roberts 计算时利用的像素数一共有 4 个, Roberts 算子边缘定位准确, 但是对噪声敏感。对边缘明显且噪声较少的图像效果较好。
2.6 Canny 算子
Canny 算子是一阶算子, 其方法是寻找图像梯度的局部极大值, 梯度是用高斯滤波器的导数计算而得, 实质上就是用 1 个准高斯函数作平滑运算然后以带方向的一阶微分算子定位导数最大值。平滑后的fs (x, y) 的梯度可以使用2×2一阶有限差分近似式:
在这个2×2正方形内求有限差分的均值, 便于在图像中的同一点计算x和y的偏导数梯度。幅值和方向角可用直角坐标到极坐标的坐标转化来计算:
其中M (i, j) 反映了图像的边缘强度, θ (i, j) 反映了边缘的方向。就算法本身来讲, 包括边缘的初始点选取、阈值设置和可能的边缘点选取及边缘连接3个部分。Canny 方法使用两个阈值来分别检测强边缘和弱边缘, 而且仅当弱边缘与强边缘相连时, 弱边缘才会包含在输出中。
图2图5为经过边缘提取的图像。通过边缘检测使医学图像手的轮廓非常明了地展现在我们面前, 这对于我们医疗机构进行手术的边界界定有重要的意义。通过边缘提取后再界定医疗手术的切入点, 能增加诊断治疗的精确性。上述这些边缘算子都有其优缺点, 在实际应用中, 我们需要根据图像的特点来选取算子。个别算子之间的性能比较, 如表1所示。
3结束语
在医学的诊断和治疗过程中, 医学图像有着举足轻重的作用, 医生对图像信息的理解及接受程度直接关系到诊断的准确性。为了提高诊断的精确性, 治疗的有效性, 就要求医学图像必须轮廓清晰、界限分明, 组织纹理信息尽可能少的丢失。
本文对医学图像进行了边缘提取, 使医学图像中器官的边界分明、组织纹理清晰, 使得医务人员可以有效地分辨出人体器官内病灶的大小和细节, 对医疗手术的精确度有很大的意义。
摘要:用Laplacian、Prewitt、Sobel等几个算子对医学图像进行边缘检测, 对边缘检测的结果进行对比, 适当选择算子对医学水准的提高有特别的含义。
关键词:边缘检测,梯度,灰度
参考文献
[1]沈庭芝, 方子文.数字图像处理及模式识别[M].北京:北京理工大学出版社, 1998.
[2]张德干.小波变换在数字图像处理中的应用研究[D].沈阳:东北大学, 2000.
[3]田捷, 包尚联, 周明全.医学影像处理与分析[M].北京:电子工业出版社, 2003.
[4]孙兆林.MATLAB6.x图像处理[M].北京:清华大学出版社, 2002.
边缘处理 第3篇
医学图像边缘检测技术是医学图像处理的关键技术之一。它也在医学图像匹配、肿瘤病灶确定、造影血管检测、冠心病诊断、左心室边缘抽出等方面占有举足轻重的地位。[1]但由于图像采集过程中的投影、混合、畸变和噪声等导致图像特征的模糊和变形, 从而造成图像特征提取的困难。因此图像边缘和轮廓特征的检测与提取方法, 一直是图像处理与分析技术中的研究热点和难点。本文主要对边缘检测的几种算子进行分析并用VC++6.0进行算法实现。采用VC++6.0集成开发环境, 以达到算法能够快速有效地执行, 同时增强算法的可移植性。
1 边缘检测
边缘检测包含两个内容:
(1) 用边缘算子提取边缘点集;
(2) 在边缘点集中去除某些边缘点, 填充一些边缘点, 再将得到的边缘点集连接为线。
常用的检测算子有微分算子、log算子和canny算子。
1.1 基于一阶微分的边缘检测方法
微分算子具有突出灰度变化的作用, 对图像运用微分算子, 灰度变化较大的点处算得的值较高, 因此这些微分值可作为相应的边界强度, 所以通过对这些微分值设置阈值, 提取边界的点集。
1.1.1 Roberts算子
Roberts算子是一种利用局部差分算子寻找边缘的算子, 它由下式给出:
Roberts算子是2×2算子模板, 对具有灰度变化陡峭的低噪声图像响应最好, 并且对边缘的定位准确, 但由于2×2大小模板没有清楚的中心点所以很难使用。用卷积模板表示:G (i, j) =Gx+Gy, 图1为其模板表示。所示的2个卷积核形成了Roberts算子, 图像中的每一个点都用这2个核做卷积。
1.1.2 Sobel算子
Sobel算子有两个卷积计算核, 如图2所示。图像中的每个点都用这两个核作卷积, 第一个核通常对垂直边缘相应最大, 第二个核对水平边缘相应最大。两个卷积的最大值作为该点的输出值, 运算结果是一幅边缘幅度图像。Sobel算子对灰度渐变和噪声较多的图像值处理效果较好。
1.1.3 Prewitt算子
Prewitt算子如图3所示, 图像中的每个点都用这两个模板做卷积分, 并且取最大值作为输出, 结果是一幅边缘幅度的图像。Prewitt算子对灰度渐变和噪声较多的图像值处理效果较好。
1.1.4 Kirsch算子
Kirsch算子如图4所示, 用不等权的8个3×3循环平均梯度算子分别与图像进行卷积, 取其中的最大值输出, 它可以检测各个方向上的边缘, 减少了由于平均而造成的细节丢失, 但同时增加了计算量。
1.2 拉普拉斯-高斯算子法 (LoG算子)
一阶微分组成的梯度是一种矢量, 不但有大小还有方向, 和标量比较, 数据存储量比较大。Laplacian算子是对二维函数进行运算的二阶导数算子[2], 与方向无关, 对取向不敏感, 因而计算量要小。根据边缘的特性, Laplacian算子可以作为边缘提取算子, 计算数字图像的Laplacian值可以借助模板实现 (如图5所示) , 但是它对噪声相当敏感, 它相当于高通滤波, 常会出现一些虚假边缘。
Marr和Hildreth将高斯滤波和拉普拉斯边缘检测结合在一起, 形成Lo G (Laplacian of Gaussian) 算法, 也称之为拉普拉斯高斯算法。该算子先用高斯算子对图像进行平滑, 然后采用拉普拉斯算子根据二阶微分过零点来检测图像边缘。
LoG算法的基本特征:
(1) 平滑滤波器是高斯滤波器。
(2) 增强步骤采用二阶导数 (二维拉普拉斯函数) 。
(3) 边缘检测判据是二阶导数零交叉点并对应一阶导数的较大峰值。
(4) 使用线性内插方法在子像素分辨率水平上估计边缘的位置。
本软件系统中对医学图像进行处理, 采用的拉普拉斯-高斯算子是一个5×5的模板, 如图6所示。到中心点的距离与位置加权系数的关系用曲线表示为图7。由于其形状很像一顶墨西哥草帽, 所以, LOG又叫墨西哥草帽滤波器。
1.3 Canny算子法
Canny于1986年提出了基于最优化算法的边缘检测算子, 其基本思想是:首先对图像选择一定的Gauss滤波器进行平滑滤波;然后采用非极值抑制 (Non-maxima suppression) 技术, 对平滑后的图像处理, 得到最后的边缘图像。
Canny算子主要通过以下步骤实现:
(1) 用高斯滤波器平滑图像;
(2) 用一阶偏导的有限差分来计算梯度的幅值和方向;
(3) 对梯度值进行非极大值抑制;
(4) 用双阈值算法检测和连接边缘。
从本质上讲, Canny边缘检测算子属于具有平滑功能的一阶微分算子。它具有很好的信噪比和检测精度。
2 医学图像边缘检测
2.1 图像采集处理系统
一般的数字图像处理系统是以计算机为中心, 配有图像输入、输出设备等, 再加上主机的通用外部设备等组成, 其图像采集处理系统示意图如图8所示。
我们利用图像采集卡完成从影像设备到计算机数据格式的转换。CPE3000是基于微型计算机PCI总线结构的彩色图像采集卡。它采用先进的数字解码方式, 将标准输入的PAL制式、NTSC制式、SECAM制式的复合彩色 (或黑白) 视频信号或S-Video信号 (即Y-C分离信号) 数字化, 经解码后转换为适于图像处理的RGB-24bits格式的数字信息, 然后通过PCI总线实时传送到PC机系统内存 (或视频显示缓冲区) 。
2.2 医学图像处理结果与分析
一般认为, 边缘线清晰、连贯性较好、能构成封闭边界线的边缘检测图为理想的图像边缘检测结果。利用不同的边缘检测算子对医学图像进行边缘检测, 其结果如图9所示, 从检测的结果来看:
Roberts算子检测方法对具有陡峭的低噪声的图像处理效果较好, 但是利用Roberts算子提取边缘的结果是边缘比较粗, 因此边缘的定位不是很准确, 而且由于不包括平滑, 所以对于噪声比较敏感。Sobel算子检测方法对灰度渐变和噪声较多的图像处理效果较好, Sobel算子对边缘定位不是很准确, 图像的边缘不止一个像素。Prewitt算子检测方法对灰度渐变和噪声较多的图像处理效果较好, 但边缘较宽, 而且间断点多。Prewitt算子和Sobel算子对灰度渐变低噪声的图像有较好的检测效果, 但是对于混合多复杂噪声的图像, 处理效果就不理想了。
LOG滤波器方法通过检测二阶导数过零点来判断边缘点。LOG滤波器中的σ正比于低通滤波器的宽度, σ越大, 平滑作用越显著, 去除噪声越好, 但图像的细节也损失越大, 边缘精度也就越低。所以在边缘定位精度和消除噪声级间存在着矛盾, 应该根据具体问题对噪声水平和边缘点定位精度要求适当选取σ。而且LOG方法没有解决如何组织不同尺度滤波器输出的边缘图为单一的、正确的边缘图的具体方法。
Canny方法则以一阶导数为基础来判断边缘点。它是一阶传统微分中检测阶跃型边缘效果最好的算子之一。Canny方法不容易受噪声干扰, 能够检测到真正的弱边缘。其优点在于, 使用两种不同的阈值分别检测强边缘和弱边缘, 并且当弱边缘和强边缘相连时, 才将弱边缘包含在输出图像中, 它比Roberts算子、Sobel算子和Prewitt算子极小值算法的去噪能力都要强, 但它也容易平滑掉一些边缘信息。
3 结束语
从处理的结果来看, 梯度算子计算简单, 但精度不高, 只能检测出图像大致的轮廓, 而对于比较细的边缘可能会忽略。Prewitt算子和Sobel算子比Roberts算子的检测效果要好一些。LOG算子和Canny算子的检测效果优于梯度算子, 能够检测出图像较细的边缘部分。在实际运用时, 应具体问题具体分析, 不同的系统, 针对不同的环境条件和要求, 选择合适的算子来对图像进行边缘检测。根据特定情况选择最佳的边缘检测算子, 可以取得令人满意的结果。
摘要:本文介绍了数字图像处理中的几种经典的边缘检测算子, 利用这些算子进行医学图像边缘检测, 对各种边缘检测算子的优劣进行了比较, 讨论了获得清晰、完整的边缘轮廓的方法, 为医学图像的进一步处理打下基础。
关键词:边缘检测,医学图像,算子
参考文献
[1]刑英杰, 张少华, 刘晓冰.虚拟手术系统技术现状[J], 计算机应用与工程, 2004.7.
[2]贾永红.数字图像处理[M].武汉:武汉大学出版社, 2003.
[3]K R Castleman.数字图像处理[M].朱志刚, 林学, 石定机, 译.北京:电子工业出版社, 1999:402-404.
[4]雷丽珍.数字图像边缘检测方法的探讨[J].测绘通报, 2006, 3:40-42.
[5]苑玮琦, 王建军, 张宏勋.一种基于梯度极值的边缘检测算法[J].信息与控制, 1997, 26 (2) ::117-120.
边缘处理 第4篇
边缘是指图像局部亮度变化最显著的部分,是物体的轮廓或物体不同表面之间的交界在图像中的反映。
边缘是图像最基本特征之一,边缘检测在图像处理与计算机视觉中占有特殊位置,它是底层处理中最重要的环节之一,其结果的正确性和可靠性将直接影响对客观物体的理解。
2. 边缘检测算法
对于边缘的检测常常借助于空域微分算子进行,通过将其模板与图像卷积完成。两个具有不同灰度值的相邻区域之间总存在灰度边缘。已有的局部技术边缘检测方法,主要有一次微分(Sobel算子、Roberts算子等)、二次微分(拉普拉斯算子等)和模板操作(Prewitt算子、Kirsch算子、Robinson算子等)等。
数字图像处理的对象是二维数字信号。首先是邻域的概念:对于任意像素(i,j),把包含该像素在内的一个集合称为(i,j)的邻域。在数字图像处理中,最常用的是像素的4邻域和8邻域。像素的4邻域(4-Neighbor):对像素(i,j),以及其上(i-1,j)、下(i+1,j)、左(i,j-1)、右(i,j+l)4个点构成的集合,称为像素(i,j)的4-邻域,有时也称4-近邻,如图2.1所示。像素的8邻域(8-Neighbor):对像素(i,j),将它和上、下、左、右四个像素以及对角线的四个像素构成的集合,称为像素(i,j)的8-邻域,有时也称8-近邻,如图2.2所示。
用算子检测图像边缘的方法是用小区域模板对图像进行处理,即采用卷积核作为掩模模板在图像中依次移动,完成图像中每个像素点同模板的卷积运算,最终输出的边缘幅度结果可以检测出图像的边缘。图像处理认为:某一点像素的结果不但和本像素灰度有关,而且和其邻域点值有关。对于一个N×N的图像,要完成9(N-2)2次乘法,8(N-2)2次加法,算法复杂度为O(N2)。
3. 几种经典边缘检测算子的理论分析
3.1 Roberts算子
Roberts算子是一种利用局部差分算子寻找边缘的算子,它由下式给出:
G[i,j]=f[i,j]-f[i+1,j+1]+f[i+1,j]-f[i,j+1](公式3.1)
Roberts算子是2×2算子模板,对具有灰度变化陡峭的低噪声图像响应最好,并且对边缘的定位准确,但由于2×2大小模板没有清楚的中心点所以很难使用。用卷积模板表示:
图3.1为其模板表示。所示的2个卷积核形成了Roberts算子,图像中的每一个点都用这2个核做卷积。
3.2 Sobel算子
Sobel算子是一种一阶微分算子,它利用像素邻近区域的梯度值来计算1个像素的梯度,然后根据一定的阈值来取舍。它由下式给出:
其中的偏导数用下式计算:
Sobel算子是3×3算子模板,图3.2为它的模板表示。图像中的每个点都用这两个模板做卷积。一个模板对通常的垂直边缘响应最大,而另一个对水平边缘响应最大。两个卷积的最大值作为该点的输出值,运算结果是1幅边缘幅度图像,此算子对灰度渐变噪声较多的图像处理得较好。
3.3 Prewitt算子
Prewitt算子与Sobel算子的方程完全一样,但c=1,该算子没有把重点放在接近模板中心的像素点。图3.3所示的2个卷积核形成Prewitt算子。
3.4 Kirsch算子
Kirsch算子是由一组8个3×3的卷积核组成(如图3.4所示)。每两个卷积核之间的夹角为45°。对于图像T,模块为Wk(k=1,2,,8),则边缘强度在点(x,y)处为:
E(x,y)=m a x{W kT}(k=1,2,,8)(式3.6)
该算子照顾到图像的360°的8个方向的边缘提取。
3.5 Laplacian算子
Laplacian算子是无方向性算子,用一个卷积核可以对图像进行处理。Laplacian算子考虑二阶差分,其典型的卷积核如图3.5所示。
4. 边缘检测算子处理图像的比较与分析
Roberts算子定位比较精确,但由于不包括平滑,所以对于噪声比较敏感。Prewitt算子和Sobel算子都是一阶的微分算子,而前者是平均滤波,后者是加权平均滤波且检测的图像边缘可能大于2个像素。
经Sobel算子处理的图像几乎分辨不出边框,经Kirsch边缘算子处理的图像比用Sobel卷积核处理的图像稍好一点,但仍分辨不出边框.因为要从8个不同的角度处理图像,Kirsch边缘算子计算繁琐,运算速度相对慢.Laplacian算子是一种二阶导数算子。二阶导数算子过零点准确地位于图像的边缘,而且其具有各向同性的特点,其边缘检测结果是不包含边缘方向信息的双像素宽边缘。
5. 结束语
图像的边缘是图像的一种基本特征之一,边缘检测属于图像分析的范畴,它是计算机视觉和图像处理中的初级阶段,通过对各种图像边缘检测算法的总结可以发现,一种较好的边缘检测技术是:首先能够准确地检测出有效的边缘;抗噪声能力强;检测的边缘最好是单像素的;计算简单等。
参考文献
[1]章毓晋.图像工程[M].北京清华大学出版社,2000.
[2]RafaelC.Gonzalez Richard E.Woods著.阮秋琦,阮宇智,译.数字图像处理[M].北京电子工业出版社,2003.
[3](美)冈萨雷斯.阮秋琦等译.数字图像处理第二版[M].北京电子工业出版社,2003.
[4]Canny.L.A computational approach to edge detection[P].1986
边缘处理 第5篇
针对成本敏感的端点应用,P1010处理器的频率可以高达800 MHz,而运行功率可低至1.1 W。该器件采用先进的端到端代码签名和入侵防御功能,提供可靠的架构平台,以防止软件入侵和软件克隆。
P1010处理器是QorIQ系列中第一款用来集成多个FlexCAN控制器的产品,这些控制器允许OEM在工厂自动化系统中实施行业协议。此外,它还组合了SD/MMC、2个PCI Express誖控制器、2个SATA控制器及3个以太网控制器,以满足NAS/DVR产品的性能和市场要求。
除工业、存储和消费应用外,P1010还非常适合成本敏感的SOHO路由器。该处理器采用软件快速通道加速技术为IPv4提供线速性能。
飞思卡尔副总裁兼网络处理器部总经理Brett Butler表示:“P1010是广泛的QorIQ产品系列的最新成员,从500 MHz的单核产品到2 GHz的多核处理器均包括在内。除了保持与PowerQUICC处理器的软件兼容性外,P1010还为QorIQ系列新增了一款特殊的多功能产品,该产品将性能、更低的运行功率和安全性融为一身,对成本敏感的市场十分具有吸引力。”
P1010的能效和大量集成外设组合可以大幅降低系统总成本。该器件采用小型(19 mm×19 mm)的425针脚TEPBGA1封装,间距只有0.8 mm,因而支持小型的底层板卡,并可减少总的占地空间。此外,低功率的散热功能允许采用无风扇设计。串行接口缩小了板卡尺寸(SGMII以太网控制器),16/32位DDR3存储控制器支持低功耗存储设计。
新QorIQ P1014可缩减更多成本
对于不需要安全启动和FlexCAN控制器的应用,飞思卡尔还提供了P1010的简化版QorIQ P1014处理器。P1014处理器包括一个16位DDR3内存控制器,在单硬盘或双硬盘NAS、DVR以及通用控制应用具有明显的成本优势。
QorIQ P1010和P1014设备是飞思卡尔产品长期供货计划的一部分,可确保10年的供货期。有关条款和条件信息,请访问:www.Freescale.com/productlongevity。
开发工具
P1010RDB参考设计板采用P1010产品,计划于2011年第一季度供货。面向新部件提供的软件和使能工具计划包括VortiQa安全软件,可用于统一的威胁管理(UTM)解决方案、住宅网关/智能能源网关及可信任的签名解决方案端到端应用。同时,Enea誖、Green Hills Software誖、Mentor Graphics誖及Wind River誖等公司也会参与提供QorIQ新部件的高级开发解决方案。
供货情况
QorIQ P1010和P1014产品的通用样本计划于2011年第一季度供货,批量生产预计在2011年第四季度开始进行。
来自飞思卡尔合作伙伴的积极评价
Enea:Enea产品营销副总裁Marcus Hjortsberg表示:“工业、消费电子和其他市场对安全和能效的要求越来越严格,飞思卡尔最新的QorIQ产品提供极具吸引力的功能,有助于满足此要求。我们共同的客户期望Enea提供综合的开发解决方案,以优化和释放QorIQ P1010和P1014产品的全部功能。”
Green Hills Software:Green Hills Software业务开发副总裁Dan Mender表示:“Green Hills赞赏飞思卡尔为解决低端、低功耗市场的安全需求所做的工作,这些新QorIQ器件正是针对这些市场而推出的。结合我们经过安全性能验证的INTEGRITY RTOS产品,客户能够部署先进的安全功能,从而满足这些市场所面临的不断增长的设备安全性和可靠性要求。”
Mentor Graphics:Mentor Graphics嵌入式软件部开放源代码和工具解决方案主管Brad Dixon表示:“按照基于我们与飞思卡尔的战略联盟协议,Mentor Graphics致力于为QorIQ P1010和P1014客户提供Mentor嵌入式Linux和开发人员工具支持。这样我们共同的客户就能够轻松、可靠地为基于P1010和P1014安全关键应用提供具有时间和成本效益的创新产品。”
边缘处理 第6篇
由于海水对电磁波和光波有很强的吸收作用,目前探测水下物体最有效的手段是声波。声纳是利用声波进行水下探测、定位和通讯的设备,常用于海底地形及水下目标图像的获取。对水下目标边缘的检测和提取是水声图像处理领域的基本问题之一。在实际声图中,由于受到海底混响的干扰,目标经常处于很强的背景噪声之中。声图中的海底混响噪声,以及目标物体的边缘部分,在空域上均表现为像素灰度级的跃变,而在频域上则都表现为高频分量。采用传统降噪方法在空域或频域上对声图进行处理,将使目标的边缘也同时变得平滑模糊,这给目标的边缘提取带来一定的困难。而在混响背景中提取的目标轮廓,经常出现边缘断裂的情况,因此连接断裂曲线也是必要的处理步骤。
数学形态学基于集合运算,具有非线性的特征,可以克服线性滤波所带来的目标边缘模糊等问题,并可以从图像中提取对于表达和描绘区域形状有用的图像分量,如边界、骨架等[1]。形态学运算在水声图像处理中有很多实际的应用。针对传统的Sobel、Prewitt、Canny等边缘检测算子对含噪图像边缘检测效果较差的问题,本文采用了多尺度形态学处理方法,对传统的经典形态学边缘检测加以改进,取得了很好的效果。[2,3,4,5]此外对于断裂的目标边缘,形态学运算也提供了有价值的操作[6]。
1 数学形态学
1.1数学形态学概述
数学形态学的主要内容是通过一系列算子和算法的设计,对图像或图像局部的基本特征与结构进行描述。与传统的频域和空域图像处理不同,数学形态学以集合论为基础,为大量的图像处理问题提供了一种非线性的全新方法。数学形态学常被应用于图像平滑、边界提取、区域填充、边缘连接、纹理分割、粒度测定等多种场合[1]。
数学形态学的基本运算是腐蚀、膨胀,以及由腐蚀和膨胀组合而成的开运算和闭运算。这四种运算组成了数学形态学的基础操作,并可由它们组合推导形成其他众多的数学形态学算法,如细化、粗化、骨架、凸壳等[1]。数学形态学最初主要针对二值图像的处理,即灰度函数值只有0和1两个可能取值的图像。在此基础上又将其范畴扩展到对灰度图像的处理,即给出针对灰度图像的膨胀、腐蚀、开运算、闭运算等操作的定义。本文讨论的数学形态学主要指灰度图像的数学形态学,下文中有时也将数学形态学简称为形态学。
1.2 数学形态学的基本运算
在灰度图像的数学形态学中,通常处理形如f(x,y)和b(x,y)的数学图像函数。其中f(x,y)为输入的灰度图像函数,b(x,y)为结构元素。结构元素b(x,y)是一个子图像函数,和f(x,y)相比通常较小。
用b(x,y)对f(x,y)进行的灰度膨胀运算定义为
用b(x,y)对f(x,y)进行的灰度腐蚀运算定义为
式(1)、(2)中,Df和Db分别是f(x,y)和b(x,y)的定义域。
数学形态学中,开运算和闭运算是膨胀和腐蚀操作的复合运算。用结构元素b(x,y)对灰度图像函数f(x,y)先进行腐蚀操作,再进行膨胀操作,即为灰度图像的开运算。公式定义为:
(fob)=(f ⨂ b)⊕ b (3)
对灰度图像作开运算的结果,使图像中较小的明亮细节尺寸变小,同时基本不影响图像中暗的部分。对二值图像作开运算,可以消除图像中的散点和毛刺。
用结构元素b对灰度图像f(x,y)先进行膨胀操作,再进行腐蚀操作,即为灰度图像的闭运算,公式定义为:
(fb)=(f ⊕ b)⨂ b (4)
对灰度图像作闭运算的结果,使图像中较小的暗部细节尺寸变小,同时基本不影响图像中的明亮部分。对二值图像作开运算,可以弥合物体内部的细小空洞和间隙,并连接邻近的物体。
1.3 形态学顶帽变换和底帽变换
形态学运算中,顶帽变换(top-hat)和底帽变换(bottom-hat)的定义如下。
顶帽变换: ftop(x,y)=f(x,y)-(fob)(x,y) (5)
底帽变换: fbot(x,y)=(fb)(x,y)-f(x,y) (6)
式(5),式(6)中,f是输入灰度图像,b是结构元素。顶帽变换得到的ftop图像中包含了f中的亮特征。底帽变换得到fbot的图像中包含了f中的暗特征。
2 边缘检测及边缘连接方法
2.1 传统边缘检测算子
传统边缘检测的依据是图像中物体边界像素邻域灰度的变化。如果图像中某处灰度梯度值较大,表明此处图像明暗变化强烈,可能存在边缘。对应的传统边缘检测算子检查图像中像素的邻域并对其中的灰度变化率进行量化,并确定变化方向。通常的计算方法是基于给定的边缘算子掩模对图像计算卷积。常用的有Sobel边缘检测算子、Prewitt边缘检测算子等,如下图1所示。
上述边缘检测算子通常都是对某个特定边缘方向做出最大响应。如图1(a)中的Sobel边缘算子对水平边缘响应最大,而图1(b)中的Prewitt边缘算子则对垂直边缘响应最大。因此通常检测边缘时需要用两个或多个方向上的边缘算子掩模做卷积运算,然后求出最大值作为输出。
可以看到上述边缘检测算子是针对图像局部的检测,而没有考虑到图像中目标物体的形态特征。
2.2 形态学边缘检测算子
形态学边缘检测算子与传统边缘检测算子有所不同,但同样需要通过差分计算来得到边缘梯度值,称之为形态学梯度。类似地,定义形态学边缘检测算子为以下三种形式。
形态学膨胀运算对应的边缘检测算子:
Gd=(f ⊕ b)-f (7)
形态学腐蚀运算对应的边缘检测算子:
Ge=f-(f ⨂ b) (8)
形态学膨胀腐蚀复合运算对应的边缘检测算子:
Gde=(f ⊕ b)-(f ⨂ b) (9)
式(7),式(8),式(9)中, f为输入灰度图像,b为结构元素。
2.3 简单断裂曲线修复方法
边缘检测处理得到的目标物体边缘图像为二值图像,通常由很多断裂的直线或曲线组成。有必要对其做进一步处理,以得到更连续的目标边缘。由1.2节中所述,二值图像的闭运算具有填补物体空洞和连接相邻物体的作用。对于不同的断裂类型,可选用不同形状适当大小的结构元素,并对断裂曲线作闭运算处理。
3 基于多尺度形态学运算的降噪方法
3.1 多尺度膨胀的应用
在侧扫声纳灰度声图中,强反向散射目标用较深的颜色表示,而作为背景的海底平坦部分用较浅的颜色表示。大量混响噪声在图像上表现为灰黑色噪点,对目标提取不利。对于具有类似特征的水声图像,采用形态学膨胀操作,可以使浅色背景下的灰黑色噪点像素值增加,从而使图像背景中的暗部细节减少,最终减少了海底背景中的混响噪声。
在图像处理中,所采用结构元素的尺度大小对处理结果有较大影响。大尺度的结构元素能使更多的暗部细节减少,去噪能力较强,但同时目标部分的轮廓细节也被当作噪声去掉。小尺度的结构元素去除暗部噪点的能力较弱,但可以保持目标部分的轮廓细节不被消除。针对这一问题,可以采用多尺度膨胀算法,利用不同尺度的结构元素,分别消除不同尺度的噪点。结果可以既消除背景噪声,又能尽量保持目标部分轮廓细节不变。
(a)Sobel边缘检测算子 (b)Prewitt边缘检测算子
图1 边缘检测算子
定义
利用不同尺度下的结构元素bi分别对灰度图像f(x,y)进行膨胀操作,得到一组膨胀图像Fi(x,y)=(f ⊕ bi)(x,y)。
对各结构元素得到的膨胀结果加权求和,得到最终的降噪结果:
式(10)中,ai为尺度i对应的加权权值。对式(8)得到的降噪图像作进一步边缘检测处理,即可得到较理想的目标边缘图像。
3.2 多尺度开闭运算的应用[4]
对于一般的声图,可以利用多尺度开闭运算方法来去除噪声,并最终有效地提取目标边缘。
基于1.3节中介绍的顶帽和底帽变换,现引入多尺度结构元素序列
f
多尺度底帽变换的公式定义:
f
式(11)中,采用尺度结构元素对输入灰度图像f(x,y)进行顶帽变换,得到的f
F
F
式(13),式(14)中,F
类似地,由式(12)得到基于F
由式(15),式(16)推导得到基于多尺度细节特征的f(x,y)等价重建图像:
从式(17)可知,可以通过f(x,y)在尺度n上的开闭运算结果与f(x,y)的多尺度细节特征图像的线性加权和来完全恢复f(x,y)。为了达到消除f(x,y)图像中噪声的目的,可以降低相应尺度细节特征图像分量的加权值。[4]从而建立修正的f(x,y)重建公式:
式(18)中,
4 实验结果
为了验证本文中图像处理算法的有效性,利用形态学方法对实际采集的声图进行处理。首先验证多尺度膨胀方法的作用,并比较传统边缘检测方法和形态学边缘检测方法的效果。图3(a)所示为某侧扫声纳采集的声图,图像中央部分为一架坠毁沉没的小型飞机的探测声图,周围的海底背景部分存在大量混响噪声。图3(b)使用Sobel掩摸对目标飞机作边缘检测处理,无法得到可辨识的目标轮廓。图3(c)采用形态学边缘检测算法对目标飞机作边缘检测处理,可以得到模糊的目标轮廓,但周围仍有大量噪声干扰。
为了消除混响噪声对边缘检测的干扰,对原图像进行降噪处理。作为比较,首先对图4(a)中的原始声图进行中值滤波降噪,并对降噪结果作边缘检测处理,得到图4(b)中的边缘图像。与图3(b)中的目标边缘图像相比,得到了可辨识的目标边缘,但目标边缘变形严重,而且背景部分仍存在大量无法消除的伪边缘,即噪声带来的不存在的目标边缘。
采用本文中基于多尺度形态学运算的降噪方法。对图3(a)采用3.1节介绍的多尺度膨胀处理,得到降噪后的目标图像,如图4(c)所示。在图4(d)和图4(e)中,分别采用两种方法对降噪后的图像(图4(c))提取边缘,并与图3(b)和图3(c)中未经降噪处理的边缘检测结果进行比较。其中图4(d)采用Sobel边缘检测方法,图4(e)采用形态学边缘检测算法进行边缘检测。为增强可视效果,对图4(e)的结果作阈值处理,得到图4(f)所示的二值目标边缘图像。与图3b和图3c的边缘检测结果相比,图4(d)和图4(f)均得到较清晰完整的边缘图像,图3(b)中背景部分可见的伪边缘消失,目标周围混响噪声的影响基本被消除。
通过图4可以比较两种边缘检测方法的边缘提取结果。图4(d)采用Sobel掩摸得到的传统边缘检测结果,边缘部分清晰,但相对原声图的目标飞机有一定变形。图4(f)中经过阈值处理的形态学边缘检测结果,边缘部分同样清晰,相对图4(d)中提取的目标边缘,更接近于原声图中的目标飞机形状。这是由于形态学处理方法本身基于目标形态的特征,因此更能反映目标物体的形状。
验证多尺度开闭运算算法和断裂曲线修复算法的作用,并比较多尺度开闭运算方法和多尺度膨胀算法的效果。图5(a)为某高分辨率图像声纳采集的声图,图像中有若干个方形浮木块。由于每个浮木块上都粘贴有若干尖劈,在声图相应区域上表现为灰度变化剧烈。剧烈变化的灰度给边缘检测带来较大影响,如图5(b)所示,对原始声图使用Sobel掩模边缘检测方法,得到的结果中存在大量孤立像素点,未能提取出目标木块轮廓。图5(c)对图5(a)中原始声图作多尺度开闭运算处理,消除尖劈带来的灰度剧烈变化。对处理后的图像作Sobel掩模边缘检测,得到图5(d)中所示的图像。图5(e)对图5(d)的处理结果作闭运算,连接图5(d)中曲线的细小断裂。作为对比,图5(f)给出采用多尺度膨胀方法对图5(a)声图处理最终得到的边缘图像。
与图5(b)相比,图5(d)得到的结果可以清晰地显示原声图中木块的边缘,并基本消除了尖劈给边缘检测带来的影响。对图5(d)进一步作闭运算处理,得到图5(e)中的结果。在此过程中,对图5(d)中曲线的细小断裂进行连接,并消除了边缘曲线周围的一些孤立像素点,得到了较好的边缘检测结果。图5(f)显示的多尺度膨胀算法对图5(a)的处理结果,同样得到较好的边缘图像。与多尺度开闭运算处理的结果相比,多尺度膨胀处理得到的边缘图像变形较大,同时运算时间也较短。
6 结束语
本文利用数学形态学方法对水声图像进行边缘检测处理。在降噪方面,分别采用多尺度膨胀算法和多尺度开闭运算方法对水声图像进行处理,取得较好的效果。其中通过多尺度膨胀运算处理得到的图像与原图像中的目标物体相比变形较大,这是由形态学膨胀操作带来的影响。此外,多尺度膨胀运算主要适用于浅色背景去除灰黑色噪声的场合,而多尺度开闭运算则普遍适用于更一般的情况。若考虑到运算时间和复杂度,多尺度膨胀运算处理的步骤比多尺度开闭运算处理的步骤简单,运算时间也较短。因此在应用中需要根据实际情况选取合适的算法。
在边缘检测方面,对采用Sobel掩模的传统边缘检测处理和形态学边缘检测处理的结果进行比较。两种方法均可以得到较好的结果,但以形态学处理方法提取的目标边缘更接近于原声图中的目标物体形状。这是由于形态学处理方法本身基于目标形态的特征,因此更能反映目标物体的形状。
在断裂曲线连接方面,针对目标轮廓断裂的边缘,采用闭运算的方法实现简单断裂曲线的连接。实际操作中还可以根据情况采用形态学膨胀和细化的方法对复杂断裂曲线作连接处理。
综合以上形态学算法,分别对声纳图像进行降噪、边缘检测和边缘连接处理,得到较清晰的边缘图像。
从实验结果中看,数学形态学运算在水声图像的边缘检测处理中具有大量实用性的应用。和传统的边缘检测方法相比,本文方法检测出的目标边缘更加清晰,基本排除了噪声的干扰,使边缘检测结果对噪声不敏感,能够得到较好的边缘图像。
参考文献
[1]Rafael C.Gonzalez,Richard E.Woods数字图像处理(第二版).北京:电子工业出版社,2003.463-473
[2]Chen T,Wu Q H,Rahmani-Torkaman R.A pseudo top-hat mathematical morphological approach to edge detection in dark re-gions.Pattern Recognition,2002,35(1):199-210
[3]江铭炎,袁东风.基于数学形态学多级平均的图像边缘检测.山东大学学报(理学版),2003,38(5):95-97
[4]柴玉华,高立群,王蓉,田磊.基于多尺度形态学大豆图像滤波方法.农业工程学报,2006,22(6):119-122
[5]赵怀勋,郑敏,李志强.一种针对含噪低对比度图像的边缘检测方法.微计算机应用,2007,28(4):
边缘处理 第7篇
关键词:prewitt边缘检测,FPGA,模板卷积,非极大值抑制
图像边缘检测是图像分割、目标区域识别、区域形状提取等图像分析领域的基础,图像理解和分析的基础是边缘检测。边缘检测目前已成为机器视觉研究领域最活跃的课题之一,在工程应用中占有十分重要的地位。
边缘的检测常借助空域微分算子进行,通过微分模板与图像卷积完成。常见的边缘检测算子有Roberts、Laplacian、Sobel、Prewitt、Krisch等,其中Prewitt和Sobel算子是在实践中计算数字梯度时最常用的[1]。Prewitt算子比Sobel算子略简单,但实际应用中和Sobel算子的效果差别很小。从运算结构上看,图像卷积运算主要是乘加运算且具有很高的重复性和并行性,属于图像处理中最耗时的低层处理算法,其速度和性能直接影响到实时图像处理系统结果的好坏,也一直是传统实时图像处理系统的瓶颈。现场可编程逻辑门阵列FPGA具有高度的并行性和设计灵活性,因而基于FPGA用硬件实现对图像底层的处理,可以大大提高图像处理的速度,满足系统的实时性要求。
本文针对实际使用中的320×240×8 bit的灰度图像数据流,在FPGA芯片上利用3×3的Prewitt卷积模板检测图像的边缘,动态计算阈值,用非极大值抑制方法对边缘检测的结果进行细化处理,提高了边缘检测的精度,满足了实时性要求。
1 Prewitt图像边缘检测及边缘细化原理
1.1 图像卷积和Prewitt模板
本文采用3×3大小的Prewitt算子。数字图像在位置(x,y)处点P(x,y)的水平差分算子Gx和垂直差分算子Gy为:
该点梯度的模近似为[1]:
上述公式采用模板表示:
可以看出,Prewitt算子是对图像灰度求平均后再求差分的,因此可以抑制噪声,但Prewitt算子检测出的边缘较宽。模板算子运算时采用模板卷积的方式,即把模板在图像上移动并在每点计算相应的梯度值。Prewitt算子使用2个有向算子(1个水平,1个垂直,一般称为掩模)。进行边缘检测时,用这2个核对图像中的每个点做卷积,其中一个核对垂直边缘响应最大,而另一个则对水平边缘响应最大。将它们的绝对值相加作为该点的输出,运算结果是一幅梯度幅度图像。
1.2 梯度幅度图像的非极大值抑制及自适应阈值
本文中原始图像的大小为320×240,经过3×3的模板卷积后,得到的梯度幅度图像G(x,y)大小为318×238。该图像增强了边缘信息,削弱了灰度变化缓慢的信息。但是,该图像产生的边缘较粗,因而传统的Prewitt边缘检测的定位精度较差。为了精确定位边缘,减小后续处理的数据量和复杂度,本文对梯度幅度图像G(x,y)进行了非极大值抑制和二值化处理。
非极大值抑制NMS(Non-Maximum Supression)是将当前像素的梯度值同沿其梯度方向相邻2个梯度值进行比较,如果其值比相邻的梯度值小,则此像素点被判断为非边缘点;如果其值比相邻的梯度值大,则此像素点被判断为边缘点[2]。
梯度幅度图像G(x,y)在(x,y)位置的非极大值抑制算法定义如下:
传统边缘检测需要人工给定阈值,适用性有限。本文根据噪声标准偏差估计RMS(estimate of noise)原理,用梯度幅度图像的平均值与增益系数的乘积作为自适应阈值:
这里,对Prewitt算子来说,scale取4。
最终的梯度二值(边缘二值)图像B(x,y)为:对梯度幅度图像上的像素点G(x,y),若其梯度幅值大于阈值,并且该点是局部变化最大的点,即nms(x,y)为1,则该像素点为图像的边缘:
2 Prewitt图像边缘检测及边缘细化的FPGA实现
根据以上数学推导和分析得出,Prewitt边缘检测的核心运算是对每个像素点进行8邻域的模板卷积,以及对梯度幅度图像进行十字邻域的非极大值抑制运算。算法数据量大,但具有很高的并行性,一般通用处理器因其顺序执行的特点不能总是满足实时性要求[3]。而FPGA具有硬件执行处理、流水线任务处理技术以及并行信息处理的优点,适合用于图像处理领域,结合自身优点提高处理速度[4]。
2.1 系统结构设计
用FPGA实现实时Prewitt图像边缘检测及边缘细化的流程为:
(1)从数字摄像头获取8 bit灰度图像数据流,经过2个行缓冲器,流水生成3×3大小的窗口。
(2)根据算式1、2、3计算窗口中心像素的梯度幅值G(x,y),比较Gx和Gy的大小,输出带比较位的G(x,y);根据场信号VSYNC、行信号HREF、像素时钟信号PCLK确定G(x,y)有效区间G_valid和有效时钟G_clk。
(3)根据式(6)的改进式(见下文)计算阈值,该阈值每一场更新1次。
(4)将第2步生成的梯度幅值图像数据流,经过2个行缓冲器,流水生成十字窗口。
(5)根据式(5)、式(7)判断窗口中心像素是否为边缘,生成边缘二值图像B(x,y);根据G_clk、G_valid和VSYNC确定B(x,y)的有效区间B_valid和有效时钟B_clk。
(6)一场图像流水处理完毕,进行下一场图像的在线处理。
系统采用流水线作业方式,由原始图像的像素时钟PCLK驱动,将8 bit灰度图像数据流首先转换成梯度幅度图像数据流,进而转换成边缘二值图像数据流。由于经过了3×3窗口的图像卷积和十字窗口的非极大值抑制处理,图像大小由原始图像的320×240变为梯度幅度图像的318×238,进而变为边缘二值图像的316×236。系统的功能结构图如图1所示。
2.2 重点模块分析
(1)复位和时钟控制模块
本文采用的摄像头OV7620输出制式NTSC,1 s有60场图像(分为奇场和偶场),每场240行,每行640像素,原始像素时钟周期为75 ns。时钟控制模块将原始像素时钟二分频,像素时钟周期变为150 ns,故输入图像分辨率为320×240。本设计的处理周期以场为单位,除了阈值以外,所有寄存器都在场开始时清零。
在窗口生成过程中,每个像素时钟都会流水地生成窗口,但并不是每个都有效。对3×3窗口来说,由于采用8邻域的模板卷积,那些在图像边缘的像素没有“有效”的窗口,故只有那些行数大于2并且行内像素数大于2的点才有有效窗口。考虑到模板计算模块的执行时间,梯度幅度像素的时钟延迟“有效”像素时钟半个周期。边缘二值像素时钟产生的过程类似。
(2)FIFO和窗口生成模块
以3×3窗口为例。为了实现窗口并行结构,需要2个先进先出缓冲器(FIFO)和9个8 bit寄存器。可以使用FPGA内部逻辑资源构造FIFO,但是会占用大量的逻辑资源[5]。本文采用ACTEl提供的FIFO控制器和FPGA内部RAM实现。FIFO通过2个指针来控制数据的读写,写时钟和读时钟分离。本文读写时钟共用像素时钟,复位时读写地址相同,必须初始化读写地址,否则不能进行正常读写。为了实现行缓冲功能,写使能信号比读使能信号提前319个周期,这样写地址就比读地址大319。窗口生成模块结构图如图2所示。考虑到FIFO有一个时钟周期的延时,故在第321个像素时钟的上升沿时,第321个像素被锁入D33,第一个像素被锁入D23。
(3)模板计算及比较模块
该模块按照式(1)、式(2)、式(3)在生成的窗口中计算G(x,y)。为避免数据溢出,Gx、Gy为11 bit有符号数,绝对值按如下方法确定:如果最高位为1,则结果为原数取反加1,舍掉最高位(符号位);否则直接舍掉最高位(符号位)。由于后续模块要比较Gx和Gy的大小,显然保存Gx和Gy会浪费很多逻辑单元,故本文将结果G(x,y)扩展1 bit,令其最高位表示Gx和Gy的大小:如果Gx大于等于Gy,则该位为1;否则为0。
(4)阈值模块
式(6)存在大数据除法,直接计算很慢而且不易实现,故本文采用构造分段函数的方法来逼近。首先将式(6)化简为:
其中累加和sum可以用累加器实现。经过大量实验数据分析,发现sum值大多集中在2 000 000到4 000 000区间内,考虑到可以方便高效地用移位来实现除数为2的倍数的除法,故阈值threshold用式(10)逼近。FPGA实现时,把累加器sum先右移14 bit,再减去补偿系数。
(5)非极大值抑制及二值化模块
该模块按照式(5)、式(7)判断对应像素是否为边缘,若是,则B(x,y)为1,否则为0。
3 实验结果分析
本文选用ACTEL公司FUSION系列60万门的AFS600,该款FPGA基于FLASH架构,拥有上电即行、单芯片、非易失性、低功耗等优点,具有4 Mbit用户可用的Flash Memory、1 kbit的Flash ROM、108 kbit的RAM。
3.1 有效性验证
(1)控制FPGA按照320×240大小采集灰度图像并存储在片外SRAM中,通过串口将图像数据发送到计算机,用MATLAB还原图像,得到原始图像(图3(a))。该图像表明采集到的图像无随机噪声,可以不用滤波处理。为了直观地显示算法的处理过程,本文利用MATLAB模拟算法的中间过程。在MATLAB上得到基于Prewitt算子的梯度幅度图像(图3(b)),为了方便显示,将其最大值限制为255。在MATLAB上得到传统Prewitt边缘检测结果,如图3(c)所示,取阈值为130。该图像边缘较粗,定位精度不高。
(2)用MATLAB生成原始图像的数据文件,利用Verilog的系统任务“$readmemh”将原始图像数据写入测试程序(testbench),用modelsim进行布线后仿真,将结果B(x,y)导出,用MATLAB还原成图像(图3(d)),该图像即为本算法边缘检测结果。
3.2 实时性验证
加入VGA驱动模块,将边缘结果B(x,y)接入VGA实时显示。VGA显示大小与图像大小一致,为320×240。处理和显示的频率为60场/s。
实验结果表明,本系统产生单像素边缘,边缘细,定位精度高,较好地完成了边缘检测的任务,为轮廓跟踪、目标识别打下良好的基础。本系统用FPGA实现,消耗逻辑资源1 473个Core Cells,占片上资源的11%;处理的图像大小为320×240,处理速度达到60场/s,满足了实时性要求。
本文利用FPGA实现了基于Prewitt算子的边缘检测,并提出基于FPGA的自适应阈值算法和非极大值抑制方法对边缘检测的结果进行细化处理,克服了传统方法产生的边缘较粗的问题,提高了边缘检测的精度。在设计中使用FIFO控制器、流水线结构、分段函数逼近等方法提高了硬件处理速度,减少了资源占用,克服了软件方法速度不足的问题,满足了系统实时性要求。
参考文献
[1]GONZALEZ R C.Digital image processing[M].北京:电子工业出版社,2004.
[2]韦海萍,赵保军,唐林波,等.Canny算法的改进及其硬件的实现[J].光学技术,2006,3(2):263-266.
[3]César Torres-Huitzil,Miguel Arias-Estrada.Real-time image processing with a compact FPGA-based systolic architecture[J].Real-Time Imaging,2004,10(3):177-187.
[4]胡亮,段发阶,丁克勤,等.基于FPGA图像处理技术在钢板表面缺陷检测系统中的应用[J].传感技术学报,2006,19(3):694-696,701.
边缘处理范文
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。