- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
摘 要: 在Altera公司的Stratix EP1S10器件中设计了以Prewitt图像边缘检测为基础的图像处理和显示系统,包括二维滤波器模块、图像VGA显示控制器、ROM存储器、FIFO缓冲器及相应的读写控制器。整个系统集成在一个芯片上,实验证明此设计方法工作效率高,处理速度快,性能稳定,可移植性好。关键词: FPGA Prewitt算子 VGA QuartusII 在嵌入式图形系统处理领域,图像的边缘图作为图像的一种基本特征,经常被应用到较高层次的特征描述。如图像识别、图像分割、图像增强以及图像压缩等图像处理和分析的技术中,从而可以对图像作进一步的分析和理解[1]。但是图像处理的速度问题一直是很难突破的设计瓶颈。一般情况下,控制领域及数据处理领域几乎是单片机和数字信号处理器的天下,但是在数据处理量大、实时性要求更为苛刻的场合,传统的MCU无法适应。而DSP虽然具备指令流水线和很高的处理速度,但是由于其本质仍然是依靠串行执行指令来完成相应的图像处理算法,所以其处理速度依然很受限制。因而基于速度、系统集成和产品升级等角度考虑,采用现代电子设计的最新EDA技术,使用高速可编程逻辑器件CPLD/FPGA自行开发有关处理芯片成了一种全新的解决方案[2]。 利用EDA技术自顶向下的思想设计SoC(片上系统)电路,能在一块FPGA芯片中完成图像存储器、时钟管理、图像处理模块、VGA显示控制器以及地址发生器等多个电路模块。使用Altera公司的Stratix EP1S10 FPGA芯片和Matlab软件、QuartusII软件等完成电路设计。其电路结构如图1所示。 其中,ROM模块用来存储图像,地址发生器将ROM中的数据传递给边缘检测处理模块,FIFO为处理后数据的缓冲存储模块,VGA控制器用来产生外部VGA显示器的控制时序及输出图像信号。1 边缘检测模块的设计1.1 Prewitt边缘检测算法[3] 图像边缘具有方向和幅度两个特性,通常沿边缘走向像素的灰度变化平缓,垂直于边缘走向的像素灰度变换剧烈。对于连续图像f(x,y),其方向导数在边缘(法线)方向上有局部最大值,因此,边缘检测就是求f(x,y)梯度的局部最大值和方向。对于离散图像来说,就是利用边缘检测算子来逼近梯度算子求得局部最大值,即: ▽f=(f(x,y)-f(x-1,y),f(x,y)-f(x,y-1) (1) 因此,检测数字图像边缘最简单的方法就是对每个像素计算▽f,然后求绝对值,最后进行阈值操作就可以实现。 Prewitt算子: 以上两个矩阵分别代表图像的水平梯度和垂直梯度。如果用Prewitt算子检测图像M的边缘,一般先用水平算子和垂直算子对图像进行卷积,得到两个矩阵M1和M2。在不考虑边界因素的时候,它们与原图像有相同的大小,分别表示图像M中相同位置对于X和Y的偏导数。然后求M1和M2对应位置的两个数的绝对值之和,得到一个新矩阵G,G是M中像素灰度梯度的近似值,然后经过阈值操作得到边缘。即: 在硬件实现过程中,由于Prewitt算子具有对称性并且滤波系数只有0和±1,所以卷积只用加法器和减法器就可以实现,不需要乘法器,这会大大减少FPGA资源消耗并降低二维卷积操作的复杂度。1.2 DSPBuilder建模 Altera公司提供了DSPBuilder建模工具,可以利用它实现算法的建模和系统仿真工作;再利用QuartusII软件进行分析和综合,最后下载到FPGA器件中完成模块的构建。现以处理256×256像素的256灰度图像为例说明边缘检测模块的实现过程,如图2所示,像素运算方法如式(4)和式(5)。 1.3 图像处理模块的Matlab仿真 DSPBuilder运行在Matlab环境下,可以利用Simulink对设计结果进行仿真。处理前后的对比阈值为50,仿真结束时间为65536个时钟周期。图3为Matlab仿真图。 由图3可以看出,图像在经过边缘检测处理后较真实地反映了实物的边缘轮廓。说明设计方法正确。2 VGA控制器的设计 对于普通的VGA显示器其引出线共含有5个信号:R、G、B三基色信号;HS行同步信号;VS场同步信号。VGA工业标准要求的时钟频率为25.175MHz(像素输出频率),行频31.496Hz,场频59.94Hz(每秒图像刷新频率)。HS、VS时序输出图和电路原理图如图4所示。其中T1包含96个时钟周期,T2包含704个时钟周期,T3包含2个行周期,T4包含523个行周期。时序驱动严格遵循VGA工作标准,即640×480×60Hz模式[4][5]。 HS设计VHDL进程: process(clk) begin if (rising_edge(clk)) then if((hcnt= 640+8+8) and (hcnt640+8+8+96
文档评论(0)