本原创文章由深圳市小眼睛科技有限公司创作,版权归本公司所有,如需转载,需授权并注明出处
适用于板卡型号:
紫光同创PGL50H开发平台(盘古50K开发板)
一:软硬件平台
软件平台:PDS_2022.1
硬件平台:小眼睛科技盘古50K开发板
二:Sobel边缘检测算法
Sobel是图像边缘检测中的一种算法,Sobel算子分为横向和纵向3×3的卷积核,两个卷积核分别与图像作平面卷积,提取水平边缘和垂直边缘,Gx和Gy分别代表横向和纵向边缘检测的图像数据,其公式如下:最后每一个像素点的Gx和Gy使用以下公式结合,便得到边缘信息的图像。
最后每一个像素点的Gx和Gy使用以下公式结合,便得到边缘信息的图像。
由于Sobel算子是平面图像的滑动卷积,使用FPGA实现是相对容易的,且具有高效率。FPGA中实现复杂的数学运算是不好处理的,G采用不开平方的近似公式实现:
三:程序设计
本设计不涉及更复杂的图像处理,所以并没有将图像数据存入DDR后再输出,一般涉及复杂或者多任务的图像处理,将图像数据存入DDR是必要的。
本设计基于小眼睛科技提供的HDMI回环实验,对输入的RGB像素值首先转灰度,转灰度后进行二值化。然后将数据存入FIFO1,在一帧中的第二行开始,将FIFO1的数据读出,并且存入FIFO2,在一帧中的第三行开始,将FIFO2的数据读出,流水实现,当场同步时,复位FIFO1和FIFO2,避免第1行和尾行像素无效的问题。
之后,将输入的像素数据和FIFO1、FIFO2输出的数据同时流水寄存三拍,形成3×3的处理像素矩阵,按照Sobel公式实现即可。最后将vs、hs、de流水延迟,与最后的输出数据对齐就可以了。
四:边缘检测效果
Sobel边缘检测效果如下视频所示:
紫光同创PGL50H图像Sobel边缘检测