首页 > 其他分享 >m基于FPGA的图像Harris角点特征提取和图像配准verilog实现,包含testbench和MATLAB辅助验证

m基于FPGA的图像Harris角点特征提取和图像配准verilog实现,包含testbench和MATLAB辅助验证

时间:2023-07-08 23:55:46浏览次数:43  
标签:配准 FPGA clk 特征 角点 图像 rst

1.算法仿真效果

Quartusii18.0+ModelSim-Altera 6.6d  Starter Edition的测试结果如下:

 

 

 

 

 

 

 MATLAB2022a测试结果如下:

 

 

 

 

 

2.算法涉及理论知识概要

      在计算机视觉领域中,图像特征提取和图像配准是两个基本的问题。图像特征提取是指从图像中提取出具有代表性的特征点或特征描述子,以便于后续的图像处理,例如目标检测、目标跟踪、三维重建等。而图像配准则是指将两幅或多幅图像在空间上对齐,以便于进行后续的图像融合、图像拼接等操作。在这两个问题中,角点检测和描述子提取是其中的一个重要问题。

 

        在图像中,角点通常指的是图像中边缘交汇的位置。角点是图像中最具有代表性的点之一,因为不同于直线和曲线,角点具有旋转不变性和尺度不变性,同时也具有较强的区分度。因此,角点在图像特征提取、目标检测等领域中得到了广泛应用。

 

       在计算机视觉领域中,有很多种角点检测算法,其中比较经典的算法是Harris角点检测算法。Harris角点检测算法是由Chris Harris和Mike Stephens在1988年提出的,它通过计算图像中的像素点在不同方向上的灰度变化率来判断哪些点是角点。下面将详细介绍Harris角点检测算法的原理和实现。

 

       图像配准是指将两幅或多幅图像在空间上对齐,以便于进行后续的图像融合、图像拼接等操作。在计算机视觉领域中,图像配准是一个非常重要的问题,它广泛应用于医学影像、遥感图像、工业检测等领域。图像配准的目标是找到两幅图像之间的对应点,从而将它们在空间上对齐。在寻找对应点的过程中,特征点的匹配是一个关键问题。

 

1 特征点匹配

 

      在图像配准中,特征点匹配是一个重要的问题。特征点匹配是指将两幅图像中的特征点进行匹配,从而找到它们之间的对应关系。特征点匹配通常分为两个步骤:特征提取和特征匹配。特征提取是指从图像中提取出具有代表性的特征点或特征描述子。在前面介绍的Harris角点检测算法中,角点可以作为图像的特征点。此外,还有很多其他的特征点检测算法,例如SIFT、SURF、ORB等。这些算法都能够从图像中提取出具有代表性的特征点或特征描述子,用于后续的特征匹配。特征匹配是将两幅图像中的特征点进行匹配,从而找到它们之间的对应关系。特征匹配通常使用距离度量的方法进行,例如欧式距离、汉明距离等。在特征匹配中,需要确定一个阈值来判断两个特征点之间的匹配关系。如果两个特征点之间的距离小于阈值,那么它们就被认为是匹配的。

 

2 图像配准算法

 

       图像配准算法主要分为基于特征的方法和基于区域的方法。基于特征的方法是一种广泛使用的图像配准方法,它利用图像中的特征点或特征描述子进行图像配准。基于特征的方法通常包括以下步骤:

 

提取两幅图像的特征点或特征描述子。

对两幅图像中的特征点或特征描述子进行匹配,找到它们之间的对应关系。

根据找到的对应关系,计算图像的变换矩阵。

对其中一幅图像进行变换,使得两幅图像在空间上对齐。

其中,步骤3和步骤4通常使用最小二乘法进行求解。最小二乘法是一种广泛使用的数学方法,用于求解线性方程组的最优解。在图像配准中,最小二乘法可以用于计算图像的变换矩阵,从而实现图像配准。

 

      基于harrirs配准的模块主要包括角点提取功能、角点配准功能两大模块。其中,角点提取模块包括高斯滤波,Harris响应值计算以及非最大值抑制等功能。角点配准模块包括角点坐标值计算功能以及配准功能。因此,这个系统的结构如下图所示:

 

 

3.Verilog核心程序

 

SDRAM_out SDRAM_out_u(
                .i_clk    (i_clk),
					 .i_rst    (i_rst),
					 .o_images1(o_images1),
					 .o_images2(o_images2)
                );
 
//select					 
wire[7:0]Images;			
assign Images = o_images1;
 
				 
//x方向滤波					 
fx_filter fx_filter_u(
                 .i_clk   (i_clk),
					  .i_rst   (i_rst),
					  .i_image (Images),
					  .o_image (o_fx)
                );
					 					 
			
			
//y方向滤波					 
fy_filter fy_filter_u(
                 .i_clk   (i_clk),
					  .i_rst   (i_rst),
					  .i_image (Images),
					  .o_image (o_fy)
                );
					 							
//Ix2= Ix.^2;
//Iy2= Iy.^2;
//Ixy= Ix.*Iy;				
			
Ix2Iy2 Ix2Iy2_u(
             .i_clk  (i_clk),
				 .i_rst  (i_rst),
				 .i_Ix   (o_fx),
				 .i_Iy   (o_fy),
				 .o_Ix2  (o_Ix2),
				 .o_Iy2  (o_Iy2),
				 .o_IxIy (o_Ixy)
             );
 
Rdet Rdet_u(
            .i_clk   (i_clk),
				.i_rst   (i_rst),
				.i_Ix2   (o_Ix2),
				.i_Iy2   (o_Iy2),
				.i_Ixy   (o_Ixy),
				.o_det   (o_det),
				.o_trace (o_trace),
				.o_R     (o_R)
           );
 
Rcheck Rcheck_u(
              .i_clk    (i_clk),
				  .i_rst    (i_rst),
				  .i_R      (o_R),
				  .o_Result1(o_Result1),
				  .o_Result2(o_Result2)
             );
 
 
 
endmodule 

 

  

 

标签:配准,FPGA,clk,特征,角点,图像,rst
From: https://www.cnblogs.com/51matlab/p/17538126.html

相关文章

  • OpenCV计算机视觉学习(14)——浅谈常见图像后缀(png, jpg, bmp)的区别(opencv读取语义分割m
    如果需要处理的原图及代码,请移步小编的GitHub地址传送门:请点击我如果点击有误:https://github.com/LeBron-Jian/ComputerVisionPractice 本来不想碎碎念,但是我已经在图像后缀上栽倒两次了。而且因为无意犯错,根本找不到问题。不论是在深度学习的语义分割中,还是在图......
  • Hello-FPGA CoaXPress 2.0 FPGA HOST IP Core Demo User Manual
     目录Hello-FPGACoaXPress2.0HostFPGAIPCoreDemo41说明42设备连接53VIVADOFPGA工程64SDK工程9图1‑1VIVADO工程目录结构4图1‑2SDK工程目录结构4图2‑1ZCU102结构图5图2‑2ZCU102UART接口6图3‑1VIVADO工程6图3‑2CPU控制器7图......
  • ENVI可以修改tif图像的头文件信息吗?如cellsize、top、left、bottom、right四至等信息?
    参考:https://jingyan.baidu.com/article/c843ea0b4004ae37921e4a2a.htmlEditHeaderEditAttributes MapInfo......
  • SRGAN图像超分重建算法Python实现(含数据集代码)
    摘要:本文介绍深度学习的SRGAN图像超分重建算法,使用Python以及Pytorch框架实现,包含完整训练、测试代码,以及训练数据集文件。博文介绍图像超分算法的原理,包括生成对抗网络和SRGAN模型原理和实现的代码,同时结合具体内容进行解释说明,完整代码资源文件请转至文末的下载链接。完整......
  • 1 opencv-python图像读写模块
    这个分类记录自己学习opencv的随笔文档,方便以后查询和复习。python-opencv环境配置网上教程很多,此处就不做赘述了,该文档记录opencv最基础的图像读写和显示,工具是jupyternotebook。1opencv中,图像读取函数是imread(filename,flags=None)参数说明:filename:读取图像的路径,通常支......
  • Darktable 4.4开源RAW图像编辑器发布
    导读Darktable4.4开源、免费、跨平台的RAW图像编辑器在darktable4.2六个月后的今天发布,看起来这是一个重大的更新,带来了许多新功能、性能改进、新的相机支持等。Darktable4.4引入了对许多新相机的支持,包括佳能PowerShotSX10IS,SX160IS,SX20IS,SX220HS,SX230HS......
  • 国产FPGA高云GW1NSR-4C,集成ARM Cortex-M3硬核
    文章目录@[toc]1.开发板硬件资源2.开发板硬件电路3.GW1NSR-4C芯片资源4.关于高云半导体5.开发工具和资料6.总结7.参考资料8.声明近两年,国外厂商的FPGA芯片价格飙升,由于价格,货期,出口管制等多方面因素的影响,很多公司都在寻找FPGA国产化替代方案。我工作中正在使用的几款芯片......
  • 【paddlepaddle速成】paddlepaddle图像分类从模型自定义到测试
    这是给大家准备的paddlepaddle与visualdl速成例子这一次我们讲讲paddlepadle这个百度开源的机器学习框架,一个图像分类任务从训练到测试出结果的全流程。将涉及到paddlepaddle和visualdl,git如下:https://github.com/PaddlePaddle相关的代码、数据都在我们Git上,希望大家Follow一下......
  • macsc软件下载资源- Lightroom Classic 2023(摄影后期图像编辑处理工具)
    哪里可以下载 macsc软件下载资源-LightroomClassic2023(摄影后期图像编辑处理工具)呢?AdobeLightroomClassic2023激活版是一款专业的数字照片处理软件,它可以帮助摄影师对照片进行分类、编辑、调整和输出。它具有强大的图像处理功能,可以对RAW格式的照片进行处理,支持多种文件......
  • 【FPGA基础】COE文件与MIF文件使用方法
    在FPGA开发中,COE文件和MIF文件是常用的存储器初始化文件。COE文件和MIF文件都用于导入存储器ROM或RAM的存储数据,但是它们的格式和语法有些不同。其中COE文件主要用于Vivado,MIF文件主要用于AlteraQuartus软件。本文主要介绍COE文件和MIF文件的使用方法。一、COE文件COE文件是一......