1.图像边缘检测算法的研究与实现 的开题报告
摘 要 针对基于PC实现的图像边缘检测普遍存在的执行速度慢、不能满足实时应用需求等缺点,本文借助于TI公司的TMS320DM642图像处理芯片作为数字图像处理硬件平台,DSP/BIOS为实时操作系统,利用CCS开发环境来构建应用程序;并通过摄像头提取视频序列,实现对边缘检测Sobel算子改进[1]。
关键词 DM642;Sobel算子;程序优化;图像边缘检测 1 引言 边缘是图像中重要的特征之一,是计算机视觉、模式识别等研究领域的重要基础。图像的大部分主要信息都存在于图像的边缘中,主要表现为图像局部特征的不连续性,是图像中灰度变化比较强烈的地方,也即通常所说的信号发生奇异变化的地方。
经典的边缘检测算法是利用边缘处的一阶导数取极值、二阶导数在阶梯状边缘处呈零交叉或在屋顶状边缘处取极值的微分算法。图像边缘检测一直是图像处理中的热点和难点。
近年来,随着数学和人工智能技术的发展,各种类型的边缘检测算法不断涌现,如神经网络、遗传算法、数学形态学等理论运用到图像的边缘检测中。但由于边缘检测存在着检测精度、边缘定位精度和抗噪声等方面的矛盾及对于不同的算法边缘检测结果的精度却没有统一的衡量标准,所以至今都还不能取得令人满意的效果。
另外随着网络和多媒体技术的发展,图像库逐渐变得非常庞大;而又由于实时图像的目标和背景间的变化都不尽相同,如何实现实时图像边缘的精确定位和提取成为人们必须面对的问题。随着DSP芯片处理技术的发展,尤其是在图像处理方面的提高如TMS320C6000系列,为实现高效的、实时的边缘检测提供了可能性[5]。
在经典的边缘检测算法中,Sobel边缘检测算法因其计算量小、实现简单、处理速度快,并且所得的边缘光滑、连续等优点而得到广泛的应用。本文针对Sobel算法的性能,并借助于TMS320DM642处理芯片[3],对该边缘检测算法进行了改进和对程序的优化,满足实时性需求。
2 Sobel边缘检测算法的改进 经典的Sobel图像边缘检测算法,是在图像空间利用两个方向模板与图像进行邻域卷积来完成的,这两个方向模板一个是检测垂直边缘,一个是检测水平边缘。算法的基本原理:由于图像边缘附近的亮度变化较大,所以可以把那些在邻域内,灰度变化超过某个适当阈值TH的像素点当作边缘点。
Sobel算法的优点是计算简单,速度快。但由于只采用了两个方向模板,只能检测水平方向和垂直方向的边缘,因此,这种算法对于纹理较复杂的图像,其边缘检测效果欠佳;同时,经典Sobel算法认为,凡灰度新值大于或等于阈值的像素点都是边缘点。
这种判定依据是欠合理的,会造成边缘点的误判,因为多噪声点的灰度新值也很大。2.1 图像加权中值滤波 由于图像中的边缘和噪声在频域中均表现为高频成分,所以在边缘检测之前有必要先对图像进行一次滤波处理,减少噪声对边缘检测的影响。
中值滤波是一种非线性信号的处理方法[2],在图像处理中,常用来保护边缘信息;保证滤波的效果。加权中值滤波,首先对每个窗口进行排序,取适当的比例,进行曲线拟合,拟合后的曲线斜率表征了此窗口的图像特征,再根据图像各部分特性适当的选择权重进行加权。
2.2 增加方向模板 除了水平和垂直两方向外,图像的边缘还有其它的方向,如135o和45o等,为了增加算子在某一像素点检测边缘的精度,可将方向模板由2个增加为8个即再在经典的方向模板的基础上增加6个方向模板,如图1所示。2.3 边缘的定位及噪声的去除 通常物体的边缘是连续而光滑的,且边缘具有方向和幅度两个特征,而噪声是随机的。
沿任一边缘点走向总能找到另一个边缘点,且这两个边缘点之间的灰度差和方向差相近。而噪声却不同,在一般情况下,沿任一噪声点很难找到与其灰度值和方差相似的噪声点[4]。
基于这一思想,可以将噪声点和边缘点区分开来。对于一幅数字图像f(x,y),利用上述的8个方向模板Sobel算子对图像中的每个像素计算,取得其中的最大值作为该点的新值,而该最大值对应的模板所表示的方向为该像素点的方向。
若|f(x,y)-f(x+i,y+j)|>TH2,对于任意i=0,1,-1;j=0,1,-1均成立,则可判断点(x,y)为噪声点。图2给出了图像边缘检测系统改进算法的软件流程图。
图1 边缘检测8个方向模板图2 系统结构图3 基于TMS320DM642的图像处理的设计及算法优化3.1 TMS320DM642功能模块及图像处理系统的硬件结构 DSP以高速数字信号处理为目标进行芯片设计,采用改进的哈佛结构(程序总线和数据总线分开)、内部具有硬件乘法器、应用流水线技术、具有良好的并行性和专门用于数字信号处理的指令及超长指令字结构(VLIW)等特点;能完成运算量大的实时数字图像处理工作。 TMS320DM642是TI公式最近推出的功能比较强大的TMS320C6x系列之一,是目前定点DSP领域里性能较高的一款[6]。
其主频是600MHz,8个并行运算单元、专用硬件逻辑、片内存储器和片内外设电路等硬件,处理能力可达4800MIPS。DM642基于C64x内核,并在其基础上增加了很多外围设备和接口,因而在实际工程中的应用更为广泛和简便。
本系统使用50 MHz晶体震荡器作为DSP的外部时钟输入,经过内部锁相。
2.在matlab下用小波函数实现灰度图像边缘检测
原始jpg格式图像
figure
plot(1,1)
imshow(I)
W=size(I,2); %得到图像高度
I1=rgb2gray(I);%将原图像转化为灰度图象
figure;subplot(221);
imshow(I1);title('灰度图像');
I2=medfilt2(I1);%滤波默认窗口为[3,3]
subplot(222);imshow(I2);title('中值滤波结果');
I3=filter2(fspecial('average',3),I1)/255; %模板尺
3.求数字图像处理边缘检测几种算子的matlab程序
我写几个吧,你最好还是找书,书上边缘处理程序很多
边缘检测一般有几步:
1、滤波
2、增强
3、检测
Roberts算子,Sobel算子,Prewitt算子,Canny算子,Log算子
实例:
i=imread('tupian.jpg');
i1=rgb2gray(i);
bw1=edge(i1,'prewitt',0.04);%也可把prewitt换成canny,log,sobel等。阈值为0.04,可改
figure(1),imshow(i);%原图
figure(2),imshow(i1);%灰度图
figure(3),imshow(bw1);%prewitt边缘提取的图像