名称:SOBEL边缘检测例程设计Verilog代码Quartus? AX301开发板
软件:Quartus
语言:Verilog
代码功能:
边缘是图像最基本的特征,其在计算机视觉、图像分析等应用中起着重要的作用,这是因为图像的边缘包含了用于识别的有用信息,是图像分析和模式识别的主要特征提取手段。
在图像中,“边缘”指的是临界的意思。一幅图像的“临界”表示为图像上亮度显著变化的地方,边缘指的是一个区域的结束,也是另一个区域的开始。“边缘点”指的是图像中具有坐标[x,y],且处在强度显著变化的位置上的点。
常用的边缘检测算法大多是以原始图像灰度值为基础,通过考察图像的每个像素的某个邻域内灰度的变化,利用边缘一阶或二阶导数的规律来检测边缘。下图左边为原始的黑白灰度的图像,通过边缘检测算法后变成了右边的图像。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
本代码已在AX301开发板验证,AX301开发板如下,其他开发板可以修改管脚适配:
设计文档:
SOBEL?边缘检测例程
1?实验简介
本实验将在例程“OV5640?摄像头?VGA?显示例程”的基础上实现视频图像边缘检测的实验。
在很多应用场合,我们只需要采集到图像的棱廓特征的信息,而丌需要全部的视频图像,这样就需要用到?SOBEL?边缘检测的算法。
2?实验原理
2.1?边缘检测原理和算法
边缘是图像最基本的特征,其在计算机视觉、图像分析等应用中起着重要的作用,这是因为图像的边缘包含了用于识别的有用信息,是图像分析和模式识别的主要特征提取手段。
在图像中,“边缘”指的是临界的意思。一幅图像的“临界”表示为图像上亮度显著变化的地方,边缘指的是一个区域的结束,也是另一个区域的开始。“边缘点”指的是图像中具有坐标[x,y],且处在强度显著变化的位置上的点。
常用的边缘检测算法大多是以原始图像灰度值为基础,通过考察图像的每个像素的某个邻域内灰度的变化,利用边缘一阶戒二阶导数的规律来检测边缘。下图左边为原始的黑白灰度的图像,通过边缘检测算法后变成了右边的图像。
实现边缘检测有很多丌同的方法,也一直是图像处理中的研究热点,人们期望找到一种抗噪 强、定位准、丌漏检、丌误检的检测算法。其中?Sobel?算子效果较好,边缘检测算法比较简单, 实际应用中效率比?canny?边缘检测效率要高,但是边缘丌如?Canny?检测的准确,但是很多实际应 用的场合,sobel?边缘却是首选,尤其是对效率要求较高,而对细纹理丌太关心的时候。本实验就 采用?Sobel?的算法来实现视频图像的边缘检测。
2.2?sobel?简介
sobel?是一个梯度的计算,如下图所示,是?x?和?y?方向的?3x3?窗口的卷积。
梯度计算公式,简化的近似计算。
对于图像,如下图:P1?到?P9?为?3x3?的?9?个像素点,简化公式计算:
3x3?图像窗口
为了进一步简化计算,我们把算子进行简化,调整为如下所示
3?程序设计
本实验的重点是?sobel?算法的实现,首先需要一个?3x3?的像素窗口,本实验利用?xilinx?提供的?VHDL?程序,做了一个?3?行的图像缓存,这样就可以轻松实现?3x3?的窗口。
然后按照简化公式,采用绝对值的方式计算?sobel。
计算完成以后,要进行简单的二值化处理,将?sobel?值和阈值对比,产生黑白的二值化图像。
4?实验现象
(1)?将摄像头模块插入开发板,保证?1?脚对齐,1?脚在焊盘形状和其他引脚是有明显区别的,是方形的。
摄像头模块连接图
(2)?连接好?VGA?显示器。
(3)?下载实验程序,可以看到只有边沿信息的黑白视频输出。注意:ov5640?模块焦距是可调的,如果焦距不合适,图像会模糊,旋转镜头,可以调节焦距。摄像头模块要轻?拿轻放,不要用手触摸元器件。
部分代码展示:
////////////////////////////////////////////////////////////////////////////////// //??CMOS?sensor?8bit?data?is?converted?to?16bit?data????????????????????????????// //??????????????????????????????????????????????????????????????????????????????// //??Author:?meisq???????????????????????????????????????????????????????????????// //??????????msq@qq.com??????????????????????????????????????????????????????????// //??????????ALINX(shanghai)?Technology?Co.,Ltd??????????????????????????????????// //??????????heijin??????????????????????????????????????????????????????????????// //?????WEB:?http://www.alinx.cn/????????????????????????????????????????????????// //?????BBS:?http://www.heijin.org/??????????????????????????????????????????????// //??????????????????????????????????????????????????????????????????????????????// ////////////////////////////////////////////////////////////////////////////////// //??????????????????????????????????????????????????????????????????????????????// //?Copyright?(c)?2017,ALINX(shanghai)?Technology?Co.,Ltd????????????????????????// //????????????????????All?rights?reserved???????????????????????????????????????// //??????????????????????????????????????????????????????????????????????????????// //?This?source?file?may?be?used?and?distributed?without?restriction?provided????// //?that?this?copyright?statement?is?not?removed?from?the?file?and?that?any??????// //?derivative?work?contains?the?original?copyright?notice?and?the?associated????// //?disclaimer.??????????????????????????????????????????????????????????????????// //??????????????????????????????????????????????????????????????????????????????// ////////////////////////////////////////////////////////////////////////////////// //================================================================================ //??Revision?History: //??Date??????????By????????????Revision????Change?Description //-------------------------------------------------------------------------------- //??2017/7/19?????meisq??????????1.0?????????Original //*******************************************************************************/
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1357
644