基于FPGA的红外图像边缘检测 -Sobel算子法

AI助手已提取文章相关产品:
关注、星标公众号,精彩内容每日送达
来源:网络素材

红外成像技术具有全天候工作、烟雾穿透能力强等优势,在军事侦察、工 业检测、安防监控等领域应用广泛。红外图像边缘检测旨在从红外图像中提出清晰、关键的物体结构和轮廓信息,从而为后续红外目标检测与识别等高级视觉任务提供基础。

图像边缘检测方法主要可基于传统方法和深度学习方法。其中,传统方法主要通过微分算子完成对图像边缘的检测,经典算子有Sobel算子,Prewitt 算子,Roberts 算子,Canny 算子等。基于深度学习的方法则通过训练神经网络完成图像边缘的提取。

本次实验的主要任务为在FPGA上实现基于Sobel算子的红外图像边缘检测。

Sobel算子的核心是是利用卷积来计算图像每个像素点的梯度近似值。图像中边缘的地方,像素值会发生剧烈变化,梯度值会很大。Sobel算子主要包含两组3x3的卷积核,分别用于计算水平方向(G_x)和垂直方向(G_y)的梯度。水平方向算子和垂直方向算法,G_x和G_y分别可表示如下形式:

G_x=[-1,0.1; -2,0,2; -1,0,1]

G_y=[-1,-2,-1; 0,0,0; 1,2,1]

Sobel算子matlab实现可表示如下(部分代码):

Sobel_img = zeros(ROW,COL);for r = 2:ROW-1    for c = 2:COL-1		Gx = gray(r-1,c+1) + 2*gray(r,c+1) + gray(r+1,c+1) - gray(r-1,c-1) - 2*gray(r,c-1) - gray(r+1,c-1);		Gy = gray(r-1,c-1) + 2*gray(r-1,c) + gray(r-1,c+1) - gray(r+1,c-1) - 2*gray(r+1,c) - gray(r+1,c+1);		G = abs(Gx) + abs(Gy);		if(G > value)			Sobel_img(r,c)=0;		else			Sobel_img(r,c)=255;		end    endend

matlab仿真结果如下:

图1 基于Sobel算子的边缘检测(matlab实现)

本次实验选用的红外图像为睿创微纳开源平台中的海上船舶数据,基于matlab实现的边缘检测结果如图1所示。

FPGA实现的实验平台为正点原子的Altera FPGA开发板,开发环境为Quartus 和ModelSim。实现代码基于Verilog编写。分别进行ModelSim进行仿真和上板验证。ModelSim仿真结果和上板验证结果如下:

图2 基于Sobel算子的边缘检测(Verilog和ModelSim仿真结果)

图3 ModelSim仿真波形图

上板验证结果如下:

图4 基于Sobel算子的边缘检测(上板验证,分别取不同阈值的边缘检测结果)

(全文完)

声明:我们尊重原创,也注重分享;文字、图片版权归原作者所有。转载目的在于分享更多信息,不代表本号立场,如有侵犯您的权益请及时联系,我们将第一时间删除,谢谢!

图片

想要了解FPGA吗?这里有实例分享,ZYNQ设计,关注我们的公众号,探索

您可能感兴趣的与本文相关内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值